|
2 | 2 | title: Key features |
3 | 3 | sidebar_position: 50 |
4 | 4 | --- |
| 5 | +# Key Features |
5 | 6 |
|
6 | | -# Key features |
| 7 | +Flamingock brings **safety, auditability, and developer productivity** into the way distributed systems evolve. |
| 8 | +These are the pillars you can rely on today, plus a glimpse of what’s coming next. |
7 | 9 |
|
8 | | -With Flamingock, you can take advantage of the following features: |
9 | 10 |
|
10 | | -- 🧱 **Change management of any component**: Manage configuration and data changes with your Application code for any component. NoSQL Databases are a first-class citizen, and we've expanded this capability for any type of component that requires configuration. |
11 | | - :::info |
12 | | - Currently supported languages: Java, Kotlin. |
13 | | - ::: |
14 | | -- 🔗 **Extended integrations and custom use case support**: Flamingock enables one-time or repeatable operational processes — such as fetching external data, initializing third-party services, or executing custom logic — ensuring they run safely, just once, and in the right context. It expands on Mongock's support to manage Database changes to all systems, databases, technologies and configurations (ie. Kafka, Twilio, Auth0, etc) or any user-defined scenario. |
15 | 11 |
|
16 | | -- 🧩 **Flexible migration Templates**: New mechanisms for defining changes, offering a no-code option to streamline and simplify change management. |
| 12 | +### Safety by Default |
| 13 | +- If Flamingock cannot guarantee a safe outcome, it stops automatically. |
| 14 | +- Prevents silent corruption in production systems and ensures predictable deployments. |
17 | 15 |
|
18 | | -- 🚀 **Seamless deployment**: Deploy your application and systems together, ensuring version compatibility and reducing deployment friction. |
| 16 | +--- |
| 17 | + |
| 18 | +### Change-as-Code (CaC) |
| 19 | +- Define changes as **versioned ChangeUnits** that are executed once, safely, and auditable. |
| 20 | +- All changes are tracked in the audit store and never silently skipped. |
| 21 | +- Guarantees immutability: once applied, a ChangeUnit cannot be modified. |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +### Dual Approach: Code and Templates |
| 26 | +Flamingock supports two complementary approaches for defining ChangeUnits: |
| 27 | + |
| 28 | +- **Code-based ChangeUnits**: Full control using Java/Kotlin classes, annotations, and dependency injection. |
| 29 | +- **Template-based ChangeUnits**: Declarative, YAML-based changes that reuse shared templates. |
| 30 | + |
| 31 | +:::note |
| 32 | +Templates are in **beta**. You can already create and use custom templates, while official ones are still evolving. |
| 33 | +::: |
| 34 | + |
| 35 | +--- |
| 36 | + |
| 37 | +### Target System Abstraction |
| 38 | +- Explicitly declare the **systems you evolve** (databases, queues, APIs, S3, etc.). |
| 39 | +- Transactional target systems are executed within transactions where possible. |
| 40 | +- Non-transactional systems are safeguarded through audit tracking and rollback mechanisms. |
19 | 41 |
|
20 | | -- ⚡ **GraalVM support**: Enables the compilation of Java applications into native executables for improved performance. |
| 42 | +--- |
| 43 | + |
| 44 | +### Immutable, Auditable History (Audit Store) |
| 45 | +- All executions are recorded in a dedicated audit store, decoupled from business data. |
| 46 | +- Provides a **single source of truth** for compliance, governance, and troubleshooting. |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +### Staging and Grouping |
| 51 | +- Organize ChangeUnits into **stages** for modularity and separation of concerns. |
| 52 | +- Execute subsets of changes independently while maintaining global audit consistency. |
21 | 53 |
|
22 | | -- 👥 **Multi-Tenant support (coming soon!)**: Designed to handle multiple tenants within the same infrastructure. |
| 54 | +--- |
23 | 55 |
|
24 | | -- 🔒 **Distributed Locking**: Ensures synchronized deployment of multiple service instances, maintaining consistency and preventing conflicts in distributed environments. |
| 56 | +### Startup Synchronization |
| 57 | +- Flamingock executes during **application startup**. |
| 58 | +- Ensures your service and its dependent systems are aligned before going live. |
25 | 59 |
|
26 | | -- 🔄 **Auditing & Rollback**: Comprehensive auditing capabilities with support for rollback of changes to ensure consistency and control. |
| 60 | +--- |
27 | 61 |
|
28 | | -- ☁️ **Cloud offering (coming soon!)**: Offers a fully managed service by hosting Flamingock’s operational data on our servers, removing the need for users to set up and manage their own infrastructure whilst unlocking the full Flamingock suite of features. |
| 62 | +### Developer Experience |
| 63 | +- Built-in dependency injection for clean and testable change logic. |
| 64 | +- Seamless Spring Boot integration with minimal setup. |
| 65 | +- GraalVM support for native image compilation. |
29 | 66 |
|
30 | | -- 💻 **Management Operations via a Dashboard and CLI (coming soon!)**: Flamingock offers tools to simplify Operational management tasks. Some of these example are: List history of changes, execute Rollbacks, Undo deployment, Audit, etc. Additionally, offers a Dashboard with metrics and alerts. |
| 67 | +--- |
31 | 68 |
|
32 | | -- 🛠️ **Advanced Workflow Management**: Enables multiple streams of change units that can be organized to execute sequentially, in parallel, or as a combination, providing flexibility in managing complex processes. |
| 69 | +### CLI |
| 70 | +- A lightweight CLI is available today for **maintenance and recovery**. |
| 71 | +- Capabilities include: |
| 72 | + - Listing the history of executed changes |
| 73 | + - Auditing change status |
| 74 | + - Managing fixes in recovery scenarios |
| 75 | + |
| 76 | +--- |
33 | 77 |
|
34 | | -- 🔀 **Parallel Synchronised Execution**: When workflows include parallel streams, they can be executed simultaneously by different service instances, maximizing efficiency in distributed deployments. |
| 78 | +### What about the Cloud Edition? |
| 79 | +The **Cloud Edition** is coming soon, extending Flamingock with **additional enterprise-grade features**. |
0 commit comments