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.
plugins {
id("io.flamingock") version "[VERSION]"
}
flamingock {
community()
}Replace
[VERSION]with the latest from Maven Central.
- Read the Quick Start guide
- Explore examples
When you deploy an app, it usually depends on things outside your code — a database schema, a queue, a feature flag, a config value.
Keeping all of that in sync across environments often means: manual scripts, tribal knowledge, and hoping nothing breaks.
Flamingock brings Change-as-Code (CaC) to your application stack.
It applies versioned, auditable changes to the external systems your application depends on — as part of the application lifecycle itself.
Changes are:
- applied in a strict, deterministic order at startup
- verified before serving traffic
- recorded in an external audit log
If Flamingock cannot guarantee a safe outcome, it stops — preventing silent corruption or partial execution.
The result: every deployment behaves as a single, consistent unit — code and system evolution, moving forward together.
Flamingock handles application-level system changes, including:
- Database schemas and reference data
- Message queues, topics, and schemas
- APIs and configuration values
- Cloud resources directly tied to application behavior
- Feature flags, permissions, and runtime policies
Flamingock is not Infrastructure-as-Code.
It does not provision servers, clusters, or networks — those belong in tools like Terraform or Pulumi.
Infrastructure-as-Code defines where systems run.
Change-as-Code defines how systems evolve.
Flamingock complements IaC by managing the evolution layer IaC does not cover.
-
Unified system evolution
Orchestrate changes across your full stack — databases, event schemas, queues, cloud resources, configs, and policies — as a single, ordered evolution. -
Change-as-Code (CaC)
Define every system change as code: versioned, reviewable, executable, and auditable. -
Programmatic or declarative
Author changes in Java/Kotlin or define them declaratively using YAML with official or custom templates. -
Startup-time synchronization
Apply all required changes when the application starts, ensuring every environment is consistent before serving traffic. -
Safety by default
Flamingock refuses to proceed when it cannot guarantee a safe outcome.
No silent failures. No partial execution.
Manual intervention is required instead of hidden corruption. -
Audit logging
Every execution is recorded externally with full traceability: what ran, when, by whom, and with what result. -
OSS core, enterprise-ready
A production-grade foundation you own and control. -
Native GraalVM support
Fully compatible with native image builds for fast startup and low memory usage. -
Coordinated multi-environment execution
Safely manage change execution across multiple environments and application instances.
Flamingock is built in the open.
If you'd like to report a bug, suggest an improvement, or contribute code, please see CONTRIBUTING.md.
⭐ Star the project to show support
- Report issues via the issue tracker
- Join discussions on GitHub Discussions
Flamingock is open source under the Apache License 2.0.
