Skip to content

Flamingock brings Change-as-Code (CaC) to your entire stack. It applies versioned, auditable changes to the external systems your application depends on — such as schemas, message brokers, databases, APIs, cloud services, and any other external system your application needs.

License

Notifications You must be signed in to change notification settings

flamingock/flamingock-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Flamingock logo

Auditable, versioned changes across distributed systems.

Evolve queues, DBs, APIs, configs, resources and more — governed, auditable, applied at startup in lockstep.

Coming from Mongock? Learn about the transition and why Flamingock is its evolution.

Maven Version Release Build Master Build Dev License

Flamingock brings Change-as-Code (CaC) to your entire stack.

It applies versioned, auditable changes to the external systems your application depends on — such as schemas, message brokers, databases, APIs, cloud services, and any other external system your application needs.

It runs inside your application (or via the CLI) — not in CI/CD — ensuring that every environment starts with the exact data, schema, and configuration it needs to run correctly.
No manual scripts. No drift. No surprises.


🧩 In plain English for developers

When you deploy an app, it often depends on things outside your code —like a database schema, a queue, or a few configuration values. Normally, keeping all of those in sync across environments means extra scripts, manual fixes, or hoping nothing drifts.

With Flamingock, your app and its changes travel together. Every update runs in order and safely, as part of the app startup — no hidden steps or guesswork.

If something goes wrong, Flamingock either recovers safely or stops before anything breaks.

The result: each deployment behaves like a single, consistent package — your code and all its required changes evolve together, predictably and with peace of mind.


💡 What Flamingock manages

Flamingock focuses on application-level changes that your code requires to run safely:

  • Database schemas and reference data
  • Message queues and schemas
  • APIs and configuration values
  • Cloud service resources directly tied to your app
  • Configuration changes (feature flags, secrets, runtime values)

What Flamingock does not manage

Flamingock is not an infrastructure-as-code tool. It does not provision servers, clusters, or networks — those belong in Terraform, Pulumi, or similar. Instead, Flamingock complements them by handling the runtime changes your application depends on.


📦 Editions

Flamingock is open source at its core and powers three editions:

  • Community Edition (Open Source) — Free and self-managed. Use your own audit store (e.g., MongoDB, DynamoDB). Ideal for basic change tracking.
  • Cloud Edition (SaaS) — Fully managed SaaS with a built-in audit store, dashboard, observability, governance, and premium features.
  • Self-Hosted Edition — Same enterprise-grade features as Cloud, deployable in your own infrastructure.

For inquiries about the Cloud or Self-Hosted editions, contact us at [email protected].


💡 Introducing Change-as-Code (CaC)

Automate changes. Version changes. Control changes.

Flamingock is built around the principle of Change-as-Code (CaC) — the idea that every change to your system’s behavior (whether it's a schema update, config toggle, or database change) should be authored, versioned, and reviewed like application code.

This enables true lockstep evolution between your application and the systems it relies on — ensuring everything stays compatible, consistent, and in sync across environments.

No more fragile scripts or untracked console changes. With CaC:

  • All changes live in your VCS and follow strict ordering
  • Executions are automated and recorded in a centralized audit log
  • Rollbacks and multi-environment consistency become first-class citizens

Just like Infrastructure-as-Code reshaped provisioning, Change-as-Code is redefining how systems evolve — and Flamingock brings that principle to life.


🚀 Getting started

implementation(platform("io.flamingock:flamingock-community-bom:$latestVersion"))
implementation("io.flamingock:flamingock-community")

annotationProcessor("io.flamingock:flamingock-processor:$latestVersion")

🔑 Key features

  • Unified system evolution: Orchestrate changes across your full stack — event schemas, feature flags, databases, S3, SaaS APIs, and more.
  • Change-as-Code (CaC): Treat changes to databases, queues, APIs, or configs as code — versioned, executable, and auditable.
  • Programmatic or declarative: Write changes in Java/Kotlin or define them in YAML using official or custom templates.
  • Startup-Time synchronization: Apply versioned Changes when your app starts — ensuring environments stay consistent and safe.
  • Safety by default: When Flamingock cannot guarantee a safe outcome, it stops and requires manual intervention. No silent data corruption. Built-in rollback, and advanced safe recovery are available in the Cloud Edition.
  • Audit logging: Every change is recorded externally, with full traceability (what, when, by whom, and result).
  • Cloud-ready, OSS-Core: Use locally, self-host, or connect to our managed Cloud — all powered by the same open source foundation.
  • Native GraalVM support: Fully compatible with native image builds for fast startup and low memory usage.
  • Coordinated multi-environment workflows: Manage complex change sequences across multiple environments or application instances.

📘 Learn more


🤝 Contributing

We welcome contributions from the community!
If you'd like to report a bug, suggest a feature, or open a pull request, check out our CONTRIBUTING.md for guidelines.


📢 Get involved

⭐ Star the project to show support


📜 License

Flamingock is open source under the Apache License 2.0.

About

Flamingock brings Change-as-Code (CaC) to your entire stack. It applies versioned, auditable changes to the external systems your application depends on — such as schemas, message brokers, databases, APIs, cloud services, and any other external system your application needs.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors 31