One of the key components of LUSID is the Event Register. This is a ledger of all changes - or events - which have happened to a portfolio and related entities in the system. It enables us to reproduce data as it looked at any point in the past.
Rather than storing the latest state of a portfolio, as you might in a traditional database, LUSID records all of the business events that occurred to the portfolio over time. Instead of considering the portfolio to be a header and a list of transactions, we store a history of changes.
An example timeline of events might look like this:
- (and so on...)
Each event has 2 time-stamps on it:
- The effectiveAt time: when the event occurred in the timeline of the entity
- The asAt time: the time the event was recorded in LUSID
By storing both times, it allows events to be back-dated, which facilitates data corrections whilst still maintaining a full audit history of all changes.
This approach forms the basis of our bi-temporal data store. It is the engine which enables us to reproduce the state of the system as-at any point in time.
For more information on this please see our article on bi-temporal data.