Skip to content

Actuarial-Sciences-for-Africa-ASA/BitemporalPostgres.jl

Repository files navigation

CI

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

here

Usage

A web app using this module for persistence is being built at https://github.com/actuarial-sciences-for-africa-asa/BitemporalReactive.jl

This project is a Julia template configured for ephemeral development environments on Gitpod.

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.

Next Steps

Click the button below to start a new development environment:

Open in Gitpod

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.