Not abstracting common microservice tasks
Abstracting microservices is a practice used in the implementation of microservice architecture. Mostly, the abstraction layer sits on the API gateway layer, which provides various cross-cutting concerns for abstracting common tasks. However, there are various tools available in the market that allow abstraction without adding abstraction to the API gateway layer and help with performing common tasks.
Not abstracting microservices seems to be an anti-pattern since it requires learning effort at the team level, plus it introduces challenges concerning the limitations of the underlying technology and the platform you are targeting. For example, let's say you are building a service in the Go language, and the message broker doesn't support the SDK to communicate with that service. In this case, if we can create an abstraction layer that communicates with the message broker, the service will help the team consume it, instead of reinventing...