Microservices immediately complicates the software and goes against keeping it boring.

Currently micro services are seen as a silver bullet to reduce complexity by creating smaller services, however it is very easy to make mistakes and create a distributed monolith or a big ball of mud.

After careful consideration, where we outweigh the pro’s and cons it could still be the right solution for a project. Always ask yourself Will this actually benefit us?.

Pro's

  • Easy to scale up specific modules / bounded contexts
  • Keeping services small and to the point
  • Easy to split up work between a team and own a whole service
  • Easy to distribute your network across providers and or regions.

Cons

  • Easy to make mistakes and create a dependency hell
  • Not trivial to migrate away from microservices
  • Complicates software immediately by creating external requests or accept incoming external requests.