| ▲ | hobs an hour ago | |
If you need "transactions" with microservices the traditional answer is sagas - eg multiple transaction boundaries that dont fully commit until their entire set of things is complete by passing a message or event to the next system, and having the ability to rollback each thing in a positive manner, either by appending new correct state again or "not ever adding" the original state. | ||
| ▲ | ekropotin 36 minutes ago | parent [-] | |
The problem with sagas is that they only guarantee eventual consistency, which is not always acceptable. There is also 2 phase commit, which is not without downsides either. All in all, I think the author made a wrong point that exact-once-processing is somehow easier to solve than exact-once-delivery, while in fact it’s exactly same problem just shaped differently. IDs here are secondary. | ||