Packages

Builds database trigger logic for incremental updates to a destination table.

Current section

Files

Jump to
sublimate README.md
Raw

README.md

[![Hex](https://img.shields.io/hexpm/v/sublimate?label=Hex)](https://hex.pm/packages/sublimate) [![HexDocs](https://img.shields.io/badge/hexdocs-HexDocs-blue?label=Documentation)](https://sublimate.hexdocs.pm/) [![CI status](https://codeberg.org/ArthurClemens/sublimate/badges/workflows/ci.yml/badge.svg?label=CI)](https://codeberg.org/ArthurClemens/sublimate/actions) ![Coverage: 100%](https://img.shields.io/badge/code_coverage-100%25-brightgreen?label=Coverage) [![License](https://img.shields.io/hexpm/l/sublimate.svg?label=Licence)](https://codeberg.org/ArthurClemens/sublimate/src/branch/main/LICENSE)
Sublimate is an Elixir helper library that builds database trigger logic for
incremental updates to a destination table.
The data source can be a single source table or multiple joined tables.
Changes to any of the source tables are staged to a deltas table.
A merge function can then be applied - on demand or at scheduled intervals -
to copy the changes to the destination table.
Sublimate maintains the destination table incrementally as the source changes;
the consumer application/library defines what the destination contains and how
staged changes merge into it.
One example of a consuming library is [Refine ➚](https://hex.pm/packages/refine),
which keeps a facets table up to date with changes in source tables.