Reputation: 25312
I've heard many times that relational databases' Transaction Log is one of original implementations of EventStore. In theory using TransactionLog as an EventStore sounds like a nice idea as we can get snapshots for free (tables data represent snapshot).
But I've never seen any attempts to use TransactionLog as an EventStore for CQRS. May be I just missed it. If not, what other potential reasons for that? Is TransactionLog a low level thing that could not be exposed for manual manipulation? Is it synchronous and tables values (snapshot) can not be delayed? Or is it just a bad idea for any other reason?
Upvotes: 1
Views: 39
Reputation: 2305
IMHO an eventstore is more than a list of transactions. The key idea is that it describes why changes were made, not just what changes were made. For example, you may see that the address was updated in a transaction log. But in an eventstore, you would see that the customer moved house.
A well crafted events are human readable. A domain expert would be able to give you a clear understanding of what was happening in a system by reading the event names in the eventstore. I've written more about this in my post 6 Code Smell with Your CQRS Events (And How to Avoid Them)
However, from a purely technical perspective, maybe it could be done. I'm just not sure why you would want to.
I hope that makes sense.
Upvotes: 2