3 ms·
Every service needs it’s own database. Then you need to handle all the DLQ errors between services as well.
by bottlepalm 3y ago
Every service needs it’s own database. Then you need to handle all the DLQ errors between services as well.
- klabb3 3y agoDevils advocate, but is it possible microservices need a shared feature-ful message passing layer, and good tooling, to be working well? Eg schema, auth, flow control, ttl, persistence, partitioning etc in the message layer, a la Kafka? I mean it’s kind of implied that microservices can only work if they can talk to each other, and “talking” is a lot more nuanced than we tend to think.
- bottlepalm 3y agoComm requires massive overhead versus simply 'calling a function'. Calling a function doesn't fail. Maybe the code in it does, but not the call to the function itself. This is why microservice costs often far outweighs the benefits, but they rarely consider the cost in their crusade to 'break up the monolith'
- klabb3 3y agoAbsolutely. But in the cases where it a monolith is not doable, such as highly heterogenous hardware requirements for different “services”, it seems like the messaging stack plays a more important role (even if that’s only needed in 5% of use cases). Typical HTTP request-response, which is often fine for a monolith, is not enough for building say task queues. A strong messaging layer can reduce the need of ad-hoc wheel reinvention.