Going through the microservices docs and talks, I'm getting the point that using distributed transactions over XA protocol is not a good choice for ensuring consistency of data, because it slows down the system and not all the endpoints support it, e.g REST.
Eventual consistency technique, implemented using retry mechanisms or messaging is suggested.
My questions is, is it possible to use eventual consistency in enterprise applications where consistency of the data in each and every point of time is critical? How to eliminate dirty reads in eventual consistency? or in other words, is it possible to ensure that no 3rd party process is getting the stale data, that were part of not committed "transaction"?