Microservices, best practices
Anyone know some good resources for best practices and guidelines when developing microservices? Mostly interested in TypeScript/AWS but also tips in general.
4 Replies
For example, where do you draw the line of responsibilities between two microservices?
Here's two talks which were eye-opening to me. https://www.youtube.com/watch?v=gfh-VCTwMw8 https://www.youtube.com/watch?v=p2GlRToY5HI
NDC Conferences
YouTube
Avoiding Microservice Megadisasters - Jimmy Bogard
You've spent months re-architecting your monolith into the new microservices vision. Everyone gathers around to flip the switch. You navigate to the first page...and nothing happens. Refresh...still nothing. The site is so slow, it won't respond for minutes. What happened?
In this session, I'll walk through a post-mortem of a real-life microserv...
NDC Conferences
YouTube
Don’t Build a Distributed Monolith - Jonathan "J." Tower - NDC Lond...
Don’t Build a Distributed Monolith: How to Avoid Doing Microservices Completely Wrong - Jonathan "J." Tower
As a consultant, I get to see many systems built by many different developers. Recently, I’ve seen an uptick in the number of systems built with a microservice architecture in mind, but those systems often include a lot of the same mistak...
My takeaways:
1) Minimizing the need for the services to chat with to each other is one guideline which might also naturally lead to a divide that also makes organizational sense. Chatty services blow up the whole system incredibly fast when every piece of communication adds latency in the form of serialization/deserialization step, network hop, whatever queue/messaging system step you have, each service doing their own permission checks etc. Potentially each message kicks of a chain of other messages between the interconnected network of services etc leading to exponential latencies. If you are not really, really carefull with that, you can easily end up with a system that costs like 10x-100x in server costs than what a simple monolith on a lone server could handle.
2) Don't be afraid to duplicate data. Each service owning their own data, copying and storing their own truth with some mechanism to sync up with other services, is a bit counterintuitive, but a good way to avoid said chattiness.
this all looks great, thanks a lot! 🙏 appreciate ya