@ChangeStream classes. A small number of properties exist for application-wide concerns: execution mode and backend-level defaults.
Application Properties
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.
This namespace is Mongo-specific. Other backends (Kafka, RabbitMQ, JDBC) ship analogous property prefixes (
flowwarden.dlq.kafka.*, etc.) once their DlqStore implementations land.
ExecutionMode values
The mode is application-wide — you cannot mix imperative and reactive handlers in the same application. See Handler Signatures for the validation rules.
What is configured by annotation, not by property
Most behavior settings live on per-stream annotations, not onapplication.yml:
This keeps stream configuration next to the code that uses it, instead of fragmenting it between annotations and YAML.
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.