# Sublimate

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.