Skip to content

Commit c2b8b41

Browse files
authored
docs: template experimental (#77)
1 parent f0ba5ee commit c2b8b41

5 files changed

Lines changed: 68 additions & 75 deletions

File tree

CLAUDE.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,12 @@ yarn swizzle # Eject Docusaurus components for customization
363363
- Keep technical documentation professional and clean
364364
- Focus on clarity and readability over decoration
365365

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+
366372
## Request Evaluation Framework
367373

368374
**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:

docs/templates/create-your-own-template.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,18 @@ title: Create your template
55

66
# Create your own Flamingock template
77

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+
820
## Introduction
921

1022
[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.

docs/templates/template-mapping-section.md

Lines changed: 0 additions & 43 deletions
This file was deleted.

docs/templates/templates-how-to-use.md

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,20 @@ import TabItem from '@theme/TabItem';
88

99
# How to use Flamingock Templates
1010

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+
:::
1225

1326
### Step 1: Add the Template dependency
1427

@@ -94,9 +107,9 @@ At application startup, Flamingock will automatically detect the YAML file and p
94107

95108
---
96109

97-
## Use case: SQL database migration
110+
## Use case: SQL database changes
98111

99-
Lets 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**.
100113

101114
### Approach 1: Using a Traditional Code-Based ChangeUnit
102115

@@ -132,7 +145,7 @@ public class CreatePersonsTableChangeUnit {
132145

133146
### Approach 2: Using a Flamingock SQL Template
134147

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:
136149

137150
```yaml
138151
id: create-persons-table-from-template
@@ -153,5 +166,5 @@ rollback: "DROP TABLE Persons;"
153166
### Key Benefits of Using a Template Instead of Code-Based ChangeUnits:
154167
- **Less code maintenance**: No need to write Java classes, inject DataSource, manage connections, or handle SQL execution manually.
155168
- **Faster onboarding**: YAML is easier for non-Java developers.
156-
- **Standardised migrations**: Ensures best practices and avoids custom implementation errors.
169+
- **Standardised changes**: Ensures best practices and avoids custom implementation errors.
157170
- **Improved readability**: Easier to review and version control.

docs/templates/templates-introduction.md

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,19 @@ import TabItem from '@theme/TabItem';
99

1010
# Templates
1111

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+
1222
## Introduction
1323

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.
1525

1626
## How It Works
1727

@@ -24,52 +34,47 @@ Templates can be:
2434
- **Offered by the community**
2535
- **Created internally by teams** to address common patterns in their own systems
2636

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.
2838

2939
### Why Do Templates Exist?
3040

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**.
3442

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.
3544

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.
3646

3747
## Key Features
3848

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.
4050
- **Declarative ChangeUnits**: Users define changes in YAML, avoiding Java boilerplate.
4151
- **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 Flamingocks 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 Flamingocks 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.
4555

46-
## When to use Template-based ChangeUnits vs. code-based ChangeUnits
56+
## When Template-based ChangeUnits Shine
4757

48-
| **Use Case** | **Template-Based ChangeUnit** | **Code-Based ChangeUnit** |
49-
|-------------|-----------------------------|-------------------------|
50-
| Integration with third-party services (e.g., Kafka, Twilio) |||
51-
| Simple database migrations (e.g., SQL schema updates) |||
52-
| Custom logic and advanced migrations | ☑️* ||
53-
| Complex, dynamic change sequences | ☑️** ||
54-
| Low-code, configuration-driven changes |||
58+
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.
5559

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:**
5761

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?
5966

67+
**Stick with code-based ChangeUnits when:**
6068

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
6272

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.
6974

7075
---
7176

72-
Flamingock Templates unlock new possibilities for seamless application evolution. Whether youre 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.
7378

7479
:::tip
7580
Join the [**Flamingock community**](https://github.com/flamingock/flamingock-project/discussions) and start building your own templates today! 🚀

0 commit comments

Comments
 (0)