BitemporalPostgres.jl

Julia-API for bitemporal, that is: audit proof, CRUD based on SearchLight.jl and POSTGRES
Author Actuarial-Sciences-for-Africa-ASA
Popularity
2 Stars
Updated Last
1 Month Ago
Started In
February 2022

goodCI

Documentation

pages-build-deployment

pkgeval 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

Architecture

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

Documentation

dev stable

To generate documentation in the development environment

Usage

A web app using this module for persistence is being built at https://github.com/Actuarial-Sciences-for-Africa-ASA/GenieBuiltLifeProto.jl

Next Steps

Open in GitHub Codespaces

Click the button below to start a new development environment:

The gitpod workspace uses a Docker a public image: michaelfliegner/gitpodpgijulia

The Dockerfile for this image resides here

Open in Gitpod On startup vscode will open this jupyter notebook:

Get Started With Your Own Project

A new project

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.