|
| 1 | +--- |
| 2 | +title: Flamingock Concepts |
| 3 | +date: 2014-04-18 11:30:00 |
| 4 | +permalink: /v1/concepts/index.html |
| 5 | +eleventyNavigation: |
| 6 | + version: v1 |
| 7 | + root: true |
| 8 | + order: 5 |
| 9 | +--- |
| 10 | +<h1 class="title">Professional- Concepts</h1> |
| 11 | + |
| 12 | +[[TOC]] |
| 13 | + |
| 14 | +## Change Units |
| 15 | +A change unit is an individual unit of change that contains executable code along with its corresponding rollback mechanism. It can be defined using a code-based approach or through low-code options. |
| 16 | + |
| 17 | +## Auditing |
| 18 | +Flamingock tracks and stores detailed information about each change unit, including system state, versioning, execution duration, author, error details, and more, ensuring full transparency and traceability. |
| 19 | + |
| 20 | +## Cloud |
| 21 | + |
| 22 | +Flamingock's cloud offering is the default and recommended approach, providing a **maintenance-free experience** |
| 23 | +with enhanced features, better audit history, and improved scalability. It’s designed to reduce operational |
| 24 | +overhead while offering more advanced capabilities compared to local drivers. The cloud service also includes |
| 25 | +a **free tier**, allowing users to experience core features with limited resources. |
| 26 | + |
| 27 | +For a more detailed explanation of advanced cloud features, please refer to the [cloud page](/v1/cloud). |
| 28 | + |
| 29 | +## Driver |
| 30 | +In Flamingock, a driver is the mechanism responsible for storing essential operational data, such as audit |
| 31 | +information, distributed locks, and system state. Drivers ensure Flamingock can track and manage |
| 32 | +change executions reliably and consistently. |
| 33 | + |
| 34 | +## Cloud Driver |
| 35 | +It's the driver implementation for leveraging the cloud offering to store its operational data |
| 36 | + |
| 37 | +## Local Drivers |
| 38 | +For users who prefer not to use the cloud offering, it's the driver implementation for using a user-provided database to store Flamingock's operational data. |
| 39 | + |
| 40 | +## Runner |
| 41 | +The runner is the orchestrator component dealing with the process logic, configuration, dependencies, framework and any environmental aspect. It’s the glue that puts together all the components. It takes the workflow, driver and framework, and run the process. |
| 42 | + |
| 43 | +Mongock provides different runner for multiple frameworks(standalone, Springboot, Micronaut...) and it can be combined with any driver |
| 44 | + |
| 45 | +## Standalone Runner |
| 46 | +Intended for vanilla Java applications or frameworks not directly supported by Flamingock. It offers a simple, flexible way to run Flamingock processes without relying on any specific framework. |
| 47 | + |
| 48 | +## Spring Boot Runner |
| 49 | +An extension of the standalone runner, designed to integrate seamlessly with Spring Boot applications. It provides additional features and integrations. However, the standalone runner can be used just as effectively in Spring Boot or non-Spring environments. |
| 50 | + |
| 51 | +## Rollbacks |
| 52 | +Triggered automatically when a change unit fails during execution. For transactional systems, Flamingock uses the system’s native rollback mechanism; otherwise, the user provides rollback code. |
| 53 | + |
| 54 | +## Undo |
| 55 | +Allows users to revert to a specific system state by rolling back changes from the most recent change unit up to a specified change unit, date or tag. This is useful when the user wants to undo a set of applied changes. |
| 56 | + |
| 57 | +## **Workflows and Stages** |
| 58 | + |
| 59 | +Flamingock organizes the execution of change units into workflows, which consist of multiple stages. |
| 60 | +- **Stages**: Groups of change units that can run in sequence or in parallel, based on the configuration. |
| 61 | + |
| 62 | +- **Workflow**: A collection of stages that defines the process flow for executing change units. Stages are executed in parallel by default but can include dependencies to enforce sequential execution. |
| 63 | + |
| 64 | +Workflows provide a structured approach to manage changes efficiently and ensure scalability during execution. |
| 65 | + |
| 66 | +## Templates |
| 67 | +Templates provide a higher-level abstraction over change units, allowing users to define reusable change units |
| 68 | +via YAML or other formats. Templates can handle various use cases, from database migrations to complex system configurations, and can be created and shared by users, contributors, or Flamingock itself. |
| 69 | + |
| 70 | +## Locking |
| 71 | +Flamingock uses distributed locking to ensure that only one process applies changes at a time, preventing concurrency issues in distributed systems. While there is a default locking configuration, more granular control can be configured for demanding scenarios. |
0 commit comments