1. We got into this microservices fad and built this really granular service architecture which we're so proud of but is actually a pile of steaming shit and we're in denial.
2. We forgot to consider that a service boundary is a transaction and/or failure domain and now we have this distributed operation that has to be transactional because it's crapping itself 50 times a day and clients are complaining that something is inconsistent somewhere.
3. Read Martin Fowler's blog and this blog article while having a post-work shit in the bathroom.
4. Come out with a half baked understanding of distributed transactions which is good enough for your ego to think is a really good business outcome.
5. Design another fucking microservice and correlation system for transaction registration.
6. Hand it over to some junior and senior developers who half-ass the whole thing because they don't understand your inane ramblings and have no idea how to test it properly.
7. Throw it into production and shout SUCCESS as loud as possible over the sounds of creaking, grinding and explosions.
How this should have turned out...
1. Actually realise that you're only doing about 5 million transactions a day and that's hardly anything.
2. Stuff the whole shebang behind a monolith with a single call, single transaction and in one storage and failure domain.
3. Pay for a slightly fatter DB instance.
4. Go back to developing things with a better ROI.
Apologies for the bitterness but it is realistic.