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 0 hello flamingock evolution gap 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.

0 hello flamingock change as code

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

0 hello flamingock mongock to flamingock

⁠This transition lets us move beyond database-centric thinking and address the full scope of modern system evolution.

Built for today’s Systems

0 hello flamingock modern ecosystem

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.