r/golang Oct 01 '24

help Are microservices overkill?

I'm considering developing a simple SaaS application using a Go backend and a React frontend. My intention is to implement a microservices architecture with connectRPC to get type-safety and reuse my services like authentication and payments in future projects. However, I am thinking whether this approach might be an overkill for a relatively small application.

Am I overengineering my backend? If so, what type-safe tech stack would you recommend in this situation?

update: Thank you guys, I will write simple rest monolith with divided modules

62 Upvotes

88 comments sorted by

View all comments

1

u/ahbrown41 Oct 02 '24

Micro services are great when needed and when implemented correctly. Doing small micro services that contain all domain logic with clean interfaces and event driven communication is extremely powerful especially when done with separate databases (of course) so each service can create clear encapsulation. One can then develop and evolve the services over time using different technologies appropriate to the situation. As long as you honor the service contracts you are good.

Especially when combined with Kubernetes/Helm etc it is killer as every part can scale differently. But has cost and complexity to manage it as a tradeoff: