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:

  • PortfolioCreatedEvent
  • TransactionAddedEvent
  • PortfolioRenamedEvent
  • TransactionAddedEvent
  • CorporateActionEvent
  • (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.