Testing on Juliahub fails as PkgEval is not applicable because tests require a running POSTGRES server.
For use cases see a jupyter notebook with tests
BitemporalPostgres provides an API for application based bitemporal, that is: audit proof, transactions with Julia and Postgres DB. Transactions are "long", with persistent transaction data that is, so they can serve as a basis of workflow management: they can be suspended, resumed and delegated.
A bitemporal data manager creates or mutates bitemporal entities as of a point in reference time. A bitemporal transaction - here also called workflow - is started in two ways:
create_entity creates
- an instance of history - the root of bitemporal entities -
- a version
- a validity_interval
update entity creates
- a version
- a valididity_interval and references
- a given history
while these data comprise the scaffolding needed for bitemporal tracking of mutations, components and revisions comprise the business payload, as well as subcomponents and their revisions.
thus mutation of Business data consists of -creation or invalidation of components/subcomponents together with their revisions and of
- updates of attributes of revisions
A web app using this module for persistence is being built at https://github.com/actuarial-sciences-for-africa-asa/BitemporalReactive.jl
If You start this repo in gitpod, You can open this jupyter notebook in vscode and execute the included code snippets with julia and postgres up and running.
Click the button below to start a new development environment:
Click the above "Open in Gitpod" button to start a new workspace. Once you're ready to push your first code changes, Gitpod will guide you to fork this project so you own it.