Building a Bitemporal Data-Store
Adding queryability to enterprise data
JUXT has worked with a tier-one investment bank to build a bitemporal data-store, that integrates with existing upstream systems.
Temporal databases are a powerful concept, where you can view the history of particular entities, and get a snapshot view of the world at a particular time. In banks this is useful for scenarios such as end-of-day processing, for calculating risk exposure and profit and loss.
Bitemporality is about being able to perform these operations against an arbitrary business time (aka domain time), and not just the transaction time of when a piece of data arrived into the database. This is particularly useful when data arrives from upstream sources, and you want to make use of a timestamp that your data-store does not own.
For our client we built a bespoke GraphQL queryable bitemporal data-store on top of RocksDB. The GraphQL resolver was able to walk a graph across disparate data sources, and to incorporate navigational business logic used to create ad-hoc views based on a pre-published data schema.
To import data from legacy data sources, we also analysed the creation of an immutable event log based on Apache Kakfa, that would be used to populate materialised views to feed various downstream sources.