I'm unsure about several things:
I have a class that implements a
NotificationDispatcherinterface. This class I named
WhatsappNotificationDispatcher, another implementation goes by
The Whatsapp message delivery itself is implemented by the API of an external service provider.
So now I have a class that both
 Implements a dispatch type (Whatsapp)  Implements a service provider for that type
And to make matters worse, all this is going on in my application layer. Because
WhatsappNotificationDispatcher is an implementation of an API, but it's also a service.
Should I move implementation into the infrastructure layer always? And do I need to create an extra interface for
WhatsappNotificationDispatcher, do implement a specific service provider API? It seems like madness.