You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Keep technical documentation professional and clean
364
364
- Focus on clarity and readability over decoration
365
365
366
+
### Technology Examples
367
+
-**CRITICAL**: When listing example technologies, ALWAYS include a mix of database and non-database technologies
368
+
-**NEVER** list only database technologies (e.g., "SQL, MongoDB") as this incorrectly positions Flamingock as just a database tool
369
+
-**ALWAYS** include diverse examples like: Kafka, S3, Redis, SQL, MongoDB, REST APIs, feature flags, etc.
370
+
- Flamingock is a comprehensive change management platform for ALL external systems, not just databases
371
+
366
372
## Request Evaluation Framework
367
373
368
374
**CRITICAL**: Before proceeding with any request, Claude must evaluate it against these three criteria and score each from 1-10. If any criterion scores below 8, Claude must ask for clarification to ensure all criteria reach at least 8 before proceeding:
Copy file name to clipboardExpand all lines: docs/templates/create-your-own-template.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,18 @@ title: Create your template
5
5
6
6
# Create your own Flamingock template
7
7
8
+
9
+
:::caution Beta feature
10
+
Templates are available in **beta**.
11
+
- You can already create **custom templates** for your own use cases.
12
+
- Flamingock is actively developing **official templates** for key technologies (Kafka, SQL, MongoDB, S3, Redis, etc.) that are currently in development and not yet production-ready.
13
+
- Expect API and behavior changes before GA.
14
+
15
+
This feature is a **sneak peek of Flamingock's future**: a low-code, reusable ecosystem on top of ChangeUnits.
16
+
:::
17
+
18
+
While official Flamingock templates are experimental, you can already build and use your own custom templates in production if needed. This page explains how.
19
+
8
20
## Introduction
9
21
10
22
[Flamingock Templates](./templates-introduction.md) allow you to encapsulate common logic and reduce boilerplate when defining change units. This document explains how to create your own templates for reuse across projects or for contribution to the Flamingock community.
Copy file name to clipboardExpand all lines: docs/templates/templates-how-to-use.md
+18-5Lines changed: 18 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,20 @@ import TabItem from '@theme/TabItem';
8
8
9
9
# How to use Flamingock Templates
10
10
11
-
Using a Flamingock Template is straightforward. Here’s an example of how you can apply an SQL-based migration using the **SQL Template**.
11
+
:::caution Beta feature
12
+
Templates are available in **beta**.
13
+
- You can already create **custom templates** for your own use cases.
14
+
- Flamingock is actively developing **official templates** for key technologies (Kafka, SQL, MongoDB, S3, Redis, etc.) that are currently in development and not yet production-ready.
15
+
- Expect API and behavior changes before GA.
16
+
17
+
This feature is a **sneak peek of Flamingock's future**: a low-code, reusable ecosystem on top of ChangeUnits.
18
+
:::
19
+
20
+
Using a Flamingock Template is straightforward. Here's an example of how you can apply an SQL-based change using the **SQL Template**.
21
+
22
+
:::note
23
+
This example uses the **SQL Template**, which is experimental. It is intended for testing and feedback, not yet production use.
24
+
:::
12
25
13
26
### Step 1: Add the Template dependency
14
27
@@ -94,9 +107,9 @@ At application startup, Flamingock will automatically detect the YAML file and p
94
107
95
108
---
96
109
97
-
## Use case: SQL database migration
110
+
## Use case: SQL database changes
98
111
99
-
Let’s compare how an SQL migration is handled using a **template-based ChangeUnit** vs. a **traditional code-based ChangeUnit**.
112
+
Let's compare how an SQL change is handled using a **template-based ChangeUnit** vs. a **traditional code-based ChangeUnit**.
100
113
101
114
### Approach 1: Using a Traditional Code-Based ChangeUnit
102
115
@@ -132,7 +145,7 @@ public class CreatePersonsTableChangeUnit {
132
145
133
146
### Approach 2: Using a Flamingock SQL Template
134
147
135
-
With the **SQL Template**, users define the same migration in **YAML** instead of Java:
148
+
With the **SQL Template**, users define the same change in **YAML** instead of Java:
Copy file name to clipboardExpand all lines: docs/templates/templates-introduction.md
+32-27Lines changed: 32 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,9 +9,19 @@ import TabItem from '@theme/TabItem';
9
9
10
10
# Templates
11
11
12
+
:::caution Beta feature
13
+
Templates are available in **beta**.
14
+
- You can already create **custom templates** for your own use cases.
15
+
- Flamingock is actively developing **official templates** for key technologies (Kafka, SQL, MongoDB, S3, Redis, etc.) that are currently in development and not yet production-ready.
16
+
- We're building a **comprehensive template catalog** where teams can discover, share, and contribute templates for common integration patterns.
17
+
- Expect API and behavior changes before GA.
18
+
19
+
This feature is a **sneak peek of Flamingock's future**: a low-code, reusable ecosystem on top of ChangeUnits.
20
+
:::
21
+
12
22
## Introduction
13
23
14
-
Flamingock Templates are pre-built modules designed to streamline the integration of common third-party services, databases, and configurations into the **Flamingock change management system**. These templates provide a structured way to define configuration changes in declarative format (such as **YAML** files), reducing the need for custom code-based ChangeUnits while ensuring seamless execution and versioning of changes.
24
+
Flamingock Templates are experimental modules designed to streamline the integration of common third-party services, databases, and configurations into the **Flamingock change management system**. These templates provide a structured way to define system changes in declarative format (such as **YAML** files), reducing the need for custom code-based ChangeUnits while ensuring execution and versioning of changes.
15
25
16
26
## How It Works
17
27
@@ -24,52 +34,47 @@ Templates can be:
24
34
-**Offered by the community**
25
35
-**Created internally by teams** to address common patterns in their own systems
26
36
27
-
This makes them highly adaptable: whether you're integrating a database, messaging system, or internal service, templates give you a low-code mechanism to structure your changes cleanly and consistently.
37
+
This makes them highly adaptable: whether you're integrating a database, messaging system, or internal service, templates give you a low-code mechanism to structure your system changes cleanly and consistently.
28
38
29
39
### Why Do Templates Exist?
30
40
31
-
Templates exist to solve a common problem in traditional, code-based migrations: **duplicated logic across ChangeUnits**.
32
-
33
-
Instead of repeating the same boilerplate code over and over, templates let you **externalize the logic** into a reusable definition and **parameterize** what’s different.
41
+
Templates exist to solve a common problem in traditional, code-based changes: **duplicated logic across ChangeUnits**.
34
42
43
+
Instead of repeating the same boilerplate code over and over, templates let you **externalize the logic** into a reusable definition and **parameterize** what's different.
35
44
45
+
Today, Flamingock templates can already be created and used in your own projects. However, the official templates provided by the Flamingock team are experimental, and their APIs may change before GA.
36
46
37
47
## Key Features
38
48
39
-
-**Pre-built, reusable modules**: Each template provides a well-defined structure for managing migrations and configurations.
49
+
-**Experimental, reusable modules**: Each template provides a well-defined structure for managing system changes and configurations.
40
50
-**Declarative ChangeUnits**: Users define changes in YAML, avoiding Java boilerplate.
41
51
-**Support for third-party integrations**: Includes databases, messaging systems, and cloud configurations.
42
-
-**Automatic execution and versioning**: Templates are applied and tracked as part of Flamingock’s change management process.
43
-
-**Built-in best practices**: Ensures correctness and reliability for each integration.
44
-
-**Extensible by the community**: Developers can contribute new templates to expand Flamingock’s ecosystem.
52
+
-**Automatic execution and versioning**: Templates are applied and tracked as part of Flamingock's change management process.
53
+
-**Designed to encourage best practices, though still experimental**.
54
+
-**Extensible by the community**: Developers can contribute new templates to expand Flamingock's ecosystem.
45
55
46
-
## When to use Template-based ChangeUnits vs. code-based ChangeUnits
Template-based ChangeUnits are ideal when you have **reusable patterns** in your system changes. They excel in scenarios where the same type of operation needs to be repeated with different parameters, allowing you to avoid duplicating boilerplate code across multiple ChangeUnits.
55
59
56
-
☑️*Templates can handle custom logic if it can be abstracted and reused. Users can create custom templates to manage these scenarios.
60
+
**Templates shine when:**
57
61
58
-
☑️** While templates may support complex change sequences, full control and dynamic logic might be easier to implement in code when the scenario is highly specific or non-repetitive.
62
+
-**You have repetitive patterns**: Creating database tables, indexes, Kafka topics, S3 buckets, or API configurations that follow the same structure but with different values
63
+
-**Multiple team members need to make similar changes**: Templates provide a consistent, declarative way for developers to define changes without writing boilerplate code
64
+
-**You want to enforce best practices**: Templates encapsulate proven logic and prevent implementation inconsistencies across your changes
65
+
-**The change type already has a template**: Why reinvent the wheel when S3, Kafka, SQL, MongoDB, or other common templates already exist?
59
66
67
+
**Stick with code-based ChangeUnits when:**
60
68
61
-
## List of current Flamingock templates
69
+
-**You have unique, one-off logic**: Complex business transformations that are specific to your application and unlikely to be repeated
70
+
-**You need maximum flexibility**: Custom integrations or complex workflows that require full programmatic control
71
+
-**No suitable template exists**: When your use case doesn't match any available templates and creating a custom template isn't justified
62
72
63
-
| Template Name | Description | Status |
64
-
|--------------|-------------|---------|
65
-
|**SQL Template**| Enables SQL-based migrations using YAML-defined ChangeUnits | In Development |
66
-
|**MongoDB Template**| Manages MongoDB operations and schema changes using YAML definitions | In Development |
67
-
|**Kafka Template**| Manages Kafka topics and configurations using YAML definitions | In Development |
68
-
|**S3 Template**| Manages S3 bucket operations and object configurations via YAML | In Development |
73
+
**Remember**: Templates can handle any level of complexity - from simple configuration updates to sophisticated multi-step operations. The decision isn't about complexity, but about **reusability** and whether the pattern is worth abstracting into a declarative format.
69
74
70
75
---
71
76
72
-
Flamingock Templates unlock new possibilities for seamless application evolution. Whether you’re managing **databases, configurations, or third-party services**, templates simplify the process, ensuring **faster, safer, and more standardised migrations**.
77
+
Flamingock Templates unlock new possibilities for application evolution. Whether you're managing **databases, configurations, or third-party services**, templates simplify the process, though they are still experimental and not yet recommended for production use.
73
78
74
79
:::tip
75
80
Join the [**Flamingock community**](https://github.com/flamingock/flamingock-project/discussions) and start building your own templates today! 🚀
0 commit comments