Skip to content

Transactions

Unless you are programming :const forms, you will need to manipulate tables and state in order to say anything useful.

In relic, you manipulate your database with transact.

transact is a function that accepts a database and a set of 'transaction ops', returning a new database with the ops applied.

A key idea with relic is that you can only manipulate tables, and you try to keep data in tables to a minimum, rederiving everything else with queries. materialization enables high performance in the face of this.

Ops

You basic operations mirror the SQL ones, see the linked docs for more info.

Additional support

  • A seq of ops is a valid op, this can sometimes save some boilerplate.
  • A function from db -> op is a valid op, you can use this for gnarly dependent writes where pure data doesn't cut it.

See also change tracking, constraints.