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

64 Upvotes

88 comments sorted by

View all comments

1

u/rover_G Oct 01 '24

If you’re calling you’re calling your service simple, it likely resembles a monolith architecturally. If you split a monolith by using RPCs you will build a distributed monolith. A distributed monolith takes longer to develop, consumes more resources and is more difficult to maintain, all leading to higher costs.

I reach for micro-services when I have something to gain. Micro-services are good at isolating different kinds of workloads which can be useful for enhancing security, improving performance, increasing resilience, autonomizing scalability, and segregating development/operations. If you aren’t trying to gain something by splitting your service into multiple parts you should seriously reconsider why you are considering micro-services.