Owner: Engineering Team | Last updated: 2026-02-25 | Status: Current
The dev environment has diverged significantly from pre-production — it contains a lot of old, unreleased changes. For now, all work is done off pre-production.
main ─────────────────────●──────────────────●──── (production)
^ ^
pre-production ─────●─────●────●─────────────●──── (staging)
^ ^
+- feature/ +- bugfix/
Current flow: feature/{name} → pre-production → main
Limitation: pre-production supports deploying any feature branch, but this can cause migration issues — there is no automatic migration rollback. When a rollback is needed, someone has to manually SSH into the AWS EC2 instance and roll back each migration by hand. Even manual rollbacks can go wrong and the process can drag on. Branch switching must be done carefully and deliberately.
dev, rename the old dev to legacy.dev: once the migration is complete, feature branches will be created from dev instead of pre-production.main ─────────────────────────────────────●──── (production)
^
pre-production ──────────●───────────────●──── (staging)
^
dev ────●────●────●──────●──────────────────── (integration)
^ ^ ^
| | +- feature/
| +- bugfix/
+- feature/
Target flow: feature/{name} → dev → pre-production → main
A feature branch is merged into dev only once the task has been verified by QA, reviewed by the team lead, and approved by the client.
| Type | Prefix | Base | Merges into |
|---|---|---|---|
| Production | main |
— | — |
| Staging | pre-production |
— | main |
| Integration | dev |
— | pre-production |
| Feature | feature/ |
dev |
dev |
| Bugfix | bugfix/ |
dev |
dev |
| Hotfix | hotfix/ |
main |
main, pre-production, and dev |
Up: Backend