Version Control Your Application#
Problem#
- Do your customers want branches and merges in your application?
- Do your customers want to review changes in your application before they go live?
- Do you want to add a pull request workflow to your application?
- Do you want to expose audit log functionality in your application?
- Do you want to expose rollback functionality in your application?
Doltgres solves this by…#
If you have an application that would benefit from branches, merges, diffs, logs, and human review of changes, you can use Doltgres to power that application. Doltgres gives you branch, diff, and merge at the database layer.
Programmatically access git functionality via functions like SELECT dolt_commit(...) and system tables like dolt.log and dolt.diff. Programmatic control of Git operations combined with the ability to use standard SQL creates the ideal foundation to add version control to your application.
Doltgres ships with standard RDBMS tools like replication and backups. Run Doltgres with a hot standby and failover just like Postgres.
Hosted Doltgres is a hosted version of Doltgres that works like AWS RDS. Let us worry about operating Doltgres in the cloud. Write your application against a cloud endpoint.
In the past applications that needed these features required slowly changing dimension or soft deletes. These approaches are cumbersome and do not support merge. Doltgres gives application the full development power of Git.
Doltgres replaces#
Soft Deletes#
A common technique to version your database is to use soft deletes. When your application would make an update or a delete, you application instead makes an insert and marks the old row invalid. Doltgres obviates the need for this technique. You can keep your existing database schema and Doltgres ensures every write is non-destructive. Queries against soft deleted rows become Doltgres history queries against system tables.
Slowly Changing Dimension#
A more advanced technique for versioning databases is slowly changing dimension. Slowly Changing Dimension is similar to soft deletes. Additional database columns are added to tables to manage versioning. Doltgres is slowly changing dimension on every table by default. Queries involving the slowly changing dimension become Doltgres history queries against system tables. Moreover, complicated merge processes can happen at the database layer. Merges must handled by custom code at the application layer with slowly changing dimension.