3 ms·
> Now you have to deal with reliability, retries/backoffs, versions, distributed transactions, consistency issues, service discovery, idempotency, and a million
by win311fwg 2mo ago
> Now you have to deal with reliability, retries/backoffs, versions, distributed transactions, consistency issues, service discovery, idempotency, and a million other things.
Someone has to deal with them, but if you are dealing with all of them then you don't really have microservices, just a multi-process monolith.
- ulrikrasmussen 2mo agoThen it sounds like you can only have a true microservice architecture if your application doesn't really need transactional guarantees, consistency or fault tolerance.
- win311fwg 2mo agoThen you must have heard the wrong thing. Oh well. You can't communicate with everyone.
- ulrikrasmussen 2mo agoThen please help me understand, it is entirely possible that I misunderstood you, but you are not clarifying your point.
- win311fwg 2mo agoYou were happy with your interpretation before. Perhaps that's sufficient?
- kstenerud 2mo agoMicroservices are just another "cache" level in the end. They can make sense in the right situations, but you need to make your architecture deliberate in order to reap its advantages. Idempotent services are an easy win, and also places where you have data locality (similar to cache locality, just a few levels lower). At the end of the day, it comes down to: - how far does the data have to travel, and at what cost? - how much latency can your process tolerate? - how much unreliability can your process tolerate? - where and how do you isolate resources that are concurrency sensitive? - what's the infrastructure going to cost?