Why we had to rethink System evolution
Modern software is built very differently than it was just a few years ago.
Applications are no longer self-contained systems evolving in isolation. Today, they depend on a growing ecosystem of external components:
- Databases and schemas
- Message brokers and event formats
- APIs and gateways
- Cloud resources and permissions
- SaaS platforms and managed services
While code deployments are largely automated, the evolution of these external systems is still handled implicitly:
- Manual steps
- Out-of-band scripts
- Ad-hoc coordination
- Tribal knowledge and assumptions
This gap is subtle — and dangerous.
Most production failures caused by external system changes don’t fail loudly. They drift silently until something breaks.
We realized that deployment is no longer the hard part.
Coordinating change across systems is.
That realization forced us to rethink what “system evolution” actually means.
A vision beyond databases
Our original project, Mongock, was created to solve a very concrete problem: safely evolving NoSQL databases.
It did that job well.
But over time, it became clear that databases were only one piece of a much larger picture. Real systems evolve across many components — and treating each change as a special case leads to fragmentation, risk, and drift.
With Flamingock, our vision expanded:
Manage and apply changes of any kind — deterministically, auditable, and in sync with application evolution.
This is what we refer to as Change-as-Code.
Not a migration tool.
Not a deployment framework.
But a discipline for managing how systems evolve.

From Mongock to Flamingock
Mongock was a specialist tool, focused on NoSQL database migrations.
Flamingock is its evolution.
It generalizes the same core principles — versioning, ordering, auditing, and fail-safe execution — and applies them to external system components, not just databases.
If you are coming from Mongock, you don’t need to rewrite your existing changes — Flamingock provides a compatibility path.(See the migration guide)
Because of this shift:
- Mongock is moving into maintenance mode (critical fixes and security updates)
- All new features and active development will happen in Flamingock

This transition lets us move beyond database-centric thinking and address the full scope of modern system evolution.
Built for today’s Systems

Flamingock is designed to:
- Work locally and incrementally
- Integrate naturally into application startup and lifecycle
- Keep execution deterministic and auditable
- Scale from single services to distributed environments
You can start using Flamingock without organizational buy-in, without cloud dependencies, and without committing to a specific deployment model.
Start small. Grow when you need to.
Join the Conversation
Flamingock is being built in the open.
If you have questions, ideas, or challenges you’re seeing in your systems, we invite you to join the discussion:
👉 Join the discussion on GitHub
Your feedback helps shape how Change-as-Code evolves.
Thanks for being here — and welcome to Flamingock.
This gap is subtle — and dangerous.