@ChangeStream classes. A small number of properties exist for application-wide concerns: execution mode and backend-level defaults.
Application Properties
| Property | Type | Default | Description |
|---|---|---|---|
flowwarden.default-mode | IMPERATIVE | REACTIVE | IMPERATIVE | Execution mode for all FlowWarden streams in the application. |
flowwarden.dlq.mongo.collection | String | _fw_dlq | Backend-level default MongoDB collection for the Dead Letter Queue. Per-stream override via @MongoDlqOptions(collection = ...). |
If Spring MVC applications can omit this property entirely. Spring WebFlux applications must set it to
flowwarden.default-mode is not set, FlowWarden defaults to IMPERATIVE and logs:REACTIVE explicitly.flowwarden.dlq.mongo
The MongoDB-backed DlqStore writes failed events to a single default collection unless a stream opts out via @MongoDlqOptions. The TTL index on expiresAt is created at startup for every collection bound to a @DeadLetterQueue-annotated stream.
| Property | Type | Default | Description |
|---|---|---|---|
flowwarden.dlq.mongo.collection | String | _fw_dlq | Default collection name used when a stream does not declare @MongoDlqOptions(collection = ...). |
flowwarden.dlq.kafka.*, etc.) once their DlqStore implementations land.
ExecutionMode values
| Value | Description |
|---|---|
IMPERATIVE | Blocking mode. Uses Spring’s MongoTemplate with dedicated threads. Handler methods return void. |
REACTIVE | Non-blocking mode. Uses ReactiveMongoTemplate and Project Reactor. Handler methods return Mono<Void>. |
What is configured by annotation, not by property
Most behavior settings live on per-stream annotations, not onapplication.yml:
| Concern | Where to configure |
|---|---|
| Resume token persistence frequency | @Checkpoint (saveEveryN, saveIntervalSeconds) |
| Retry behavior on failure | @RetryPolicy (maxAttempts, initialDelay, multiplier, maxDelay, jitter, retryOn, noRetryOn) |
| Dead Letter Queue policy | @DeadLetterQueue (enabled, retentionDays, includeOriginalDocument, includeStackTrace) |
| Mongo-specific DLQ collection | @MongoDlqOptions (collection) — backend companion to @DeadLetterQueue |
| Multi-instance coordination | @ChangeStream(deploymentMode = ...) |
| Server-side filtering | @Pipeline |
| Application-side filtering | @Filter |
| Custom error handling | @OnError |
| Multi-database routing | @ChangeStream(mongoTemplateRef = ...) |
MongoDB connection
FlowWarden uses Spring Data MongoDB’s auto-configuredMongoTemplate (or ReactiveMongoTemplate). Configure the connection with standard Spring properties:
Disabling FlowWarden globally
To disable all streams without removing the@EnableFlowWarden annotation, set the attribute on the annotation itself:
See Also
@EnableFlowWarden
Auto-configuration entry point and global on/off switch.
@ChangeStream
Per-stream attributes — the main place to configure behavior.
Handler Signatures
Mode-dependent return type rules.
Actuator
Operational endpoints and metrics.