💡 Relational databases are not losing data. They're strong, consistent and secure! Are they? Too often, we mix technical and logical concepts. Business transactions are not the same as database transactions. The fact that we can safely assume that information that we put into the database will be stored durable doesn't mean that it won't be lost. We don't even need to delete any data to lose precious business information. Each override replacing the previous state with the new one, may already erase the valuable information. For instance, seeing that the shopping cart is empty, how will you know that it's just a new shopping cart or someone added and removed a product? Such "pessimistic" scenarios are sometimes more valuable insight for the business than just knowing that everything went right and someone bought something eventually. In this example, knowing that someone put the product into the shopping cart but decided not to buy it can give us information about some gap or even an opportunity to "close the deal". Yet, we need to have that information! #EventSourcing, contrary to the standard approach, keeps all the facts that happened in our system. We can look back, and make analyses and enhanced diagnostics. Events are a great source and input for future workflows: analytics, reporting or even machine learning. Yesterday I got to speak yesterday about that during the Wrocław #Java User Group. I brought not only theory but also got my hands dirty to elbows in code using new goodies from Java. People seemed interested; there were a lot of good discussions and questions, which is the best sign for me that it was intriguing. And that's the typical pattern I see. #EventSourcing is still a niche, but it's emerging quickly into a commodity. Don't wait to jump on the bandwagon; some empty seats are still left! 😅
Programista .Net w Gotoma
1yuntil some intern drops table or DB :D