Guepard / Features
Branching in Guepard
Branch your data the same way you branch your code
Guepard introduces database branching, allowing developers to manage databases as easily as they manage code. With instant branch creation, you can quickly test, develop, and deploy changes in isolated environments without impacting production.

What is a Branch?
A branch in Guepard is an independent, copy-on-write clone of your data. You can create a branch from the current state or from a past point in time, allowing for flexible development and testing workflows.
Branches do not duplicate data immediately. They share the same storage as the parent branch until modifications occur, making them highly efficient.
Key Characteristics
- Isolation: Changes made in a branch do not affect the original database or other branches.
- Efficiency: Copy-on-write mechanisms ensure minimal storage overhead.
- Speed: Branch creation is instantaneous, regardless of database size.
- Zero-downtime migrations: Branching supports non-disruptive schema changes with automatic rollback mechanisms.
Branching Workflows
Developers can create branches from the production database to test new features without affecting live data. Each branch is an independent copy, allowing seamless experimentation. Guepard branches integrate with existing workflows, supporting CLI, API, and automation tools such as GitHub Actions. This enables automated environment provisioning for every new feature branch.
Data Recovery after misusage
If data is lost due to unintended deletion, schema corruption, or transaction failure, Guepard enables restoration of a branch to any recorded point within its history retention period. This ensures precise rollback without impacting active operations. Additionally, a point-in-time branch can be created for forensic analysis, compliance verification, or audit tracking
How to Use Branching in Guepard
Specify a branch name and the desired point in time. Guepard instantly creates an isolated version of your database, enabling rapid iterations without downtime. Each branch has its own connection string, making it accessible for development and testing. Multiple teams can work on different branches simultaneously without conflicts.