Striving to become a master Go/Cloud developer; Father ๐จโ๐งโ๐ฆ; ๐ค/((Full Stack Web|Unity3D) + Developer)/g; Science supporter ๐ฉโ๐ฌ; https://coder.today
Search around for event-sourcing. It is a standard way (ledger like) to keep important data and events. It is like your 2nd version, but to tackle the downside of processing, you can take snapshops every now and then. basically you can generate the 1st version if you have the raw data (2nd).
Event sourcing really blew my mind; Redux uses event sourcing to create predictable application state from events. At a high level, if you understand Redux, you understand how bank transactions might work.
Search around for event-sourcing. It is a standard way (ledger like) to keep important data and events. It is like your 2nd version, but to tackle the downside of processing, you can take snapshops every now and then. basically you can generate the 1st version if you have the raw data (2nd).
Event sourcing really blew my mind; Redux uses event sourcing to create predictable application state from events. At a high level, if you understand Redux, you understand how bank transactions might work.
Search around for CQRS-ES ! CQRS is powerful combined to ES !