Comment by kukkeliskuu

2 days ago

Your example is too simple to show the problem with the "eventual consistency" as people use the term in real life.

Let's say you have two systems, one containing customers (A) and other containing contracts for the customers (B).

Now you create a new contract by first creating the customer in system A and then the contract on system B.

It may happen that web UI shows the contract in system B, which refers to the customer by id (in system A), but that customer becomes visible slightly after in system A.

The web UI has to either be built to manage the situation where fetching customer by id may temporarily fail -- or accept the risk that such cases are rare and you just throw an error.

If a system would be actually "eventually consistent" in the sense you use the term, it would be possible for the web UI to get guarantee from the system-of-systems to fetch objects in a way that they would see either both the contract and the customer info or none.