At the end of a request I want to ensure that both 1) persisting to the DB and 2) dispatching to the message queue is successful.

If one of these side effects fails, I want both to fail: this can be done with a distributed transaction (eg. 2PC or something similar).

My question is, how much overhead/complexity/latency does this introduce into the system? And is this even needed in the first place or am I overthinking this?

Add Comment