2 ms·
I don't think it really does. Technically it can but in the real world when people turn to ACID semantics to make an async system appear sync they screw it up.
by fleitz 15y ago
I don't think it really does. Technically it can but in the real world when people turn to ACID semantics to make an async system appear sync they screw it up.
Very few people set their consistency level to serializable which means that they probably have a whole tonne of race conditions that they don't think they have in their code. Even with the consistency level set to serializable you generally still end up with lots of strange state bugs.
Most of the point of messaging systems are to create asynchronous systems, the point of ACID semantics is to make an async system appear synchronous. If the issue is purely one of making a couple database writes then you probably don't need the message queue in the first place, if the couple of database writes depends on an external service then you've lost all the consistency you thought you had. (Unless the external service supports transaction semantics and you've got a 2PC system setup)