# FlowWarden ## Docs - [Configuration](https://docs.flowwarden.io/amqp/configuration.md): Properties, wire format, per-stream overrides, confirm-mode trade-offs, hybrid setups - [AMQP DLQ Backend](https://docs.flowwarden.io/amqp/index.md): Publish-only DlqStore implementation for FlowWarden Stream Core — routes failed events to an AMQP 0.9.1 topic exchange instead of MongoDB - [Quickstart](https://docs.flowwarden.io/amqp/quickstart.md): Route FlowWarden failed events to an AMQP broker in 5 minutes - [How it Works](https://docs.flowwarden.io/concepts/how-it-works.md): Understand FlowWarden's startup lifecycle, event processing pipeline, and dual execution model - [FAQ](https://docs.flowwarden.io/faq.md): Common technical questions about prerequisites, operations, and how FlowWarden compares to alternative stream-processing tools - [Checkpoint & Resume](https://docs.flowwarden.io/guides/checkpoint-resume.md): Persist resume tokens so streams survive restarts without missing or replaying events - [Filtering Events](https://docs.flowwarden.io/guides/filtering-events.md): Reduce noise and CPU with @Pipeline (server-side) and @Filter (application-side) - [Imperative vs Reactive](https://docs.flowwarden.io/guides/imperative-vs-reactive.md): Choose between blocking and reactive execution modes - [Javers Integration](https://docs.flowwarden.io/guides/javers-integration.md): React to Javers audit changes in real time with deserialized domain objects and commit metadata - [Retry & Dead Letter Queue](https://docs.flowwarden.io/guides/retry-and-dlq.md): Handle failures with exponential backoff and DLQ - [Threading & Scaling](https://docs.flowwarden.io/guides/threading-and-scaling.md): Understand FlowWarden's threading model, virtual threads support, and how to scale event processing with message brokers - [Transactions](https://docs.flowwarden.io/guides/transactions.md): Use MongoDB transactions with Change Stream handlers for exactly-once processing semantics - [FlowWarden Stream](https://docs.flowwarden.io/index.md): Declarative MongoDB Change Streams for Spring Boot - [Quickstart](https://docs.flowwarden.io/quickstart.md): Start listening to MongoDB Change Streams in a Spring Boot app in under 5 minutes - [Configuration](https://docs.flowwarden.io/redis/configuration.md): Properties, storage layout, reactive variants, and hybrid Mongo + Redis setups - [Redis Backend](https://docs.flowwarden.io/redis/index.md): Redis-backed LockService and CheckpointStore for FlowWarden Stream Core — a drop-in alternative to the default MongoDB backends - [Quickstart](https://docs.flowwarden.io/redis/quickstart.md): Add the Redis backend to a Spring Boot app in 5 minutes - [Actuator Integration](https://docs.flowwarden.io/reference/actuator.md): Monitor and manage FlowWarden Change Streams via Spring Boot Actuator - [@ChangeStream](https://docs.flowwarden.io/reference/change-stream.md): Declare a MongoDB Change Stream handler with a single annotation. - [ChangeStreamContext](https://docs.flowwarden.io/reference/change-stream-context.md): Runtime context passed to handler methods - [@Checkpoint](https://docs.flowwarden.io/reference/checkpoint.md): Automatic resume token persistence for reliable Change Stream recovery - [CheckpointStore SPI](https://docs.flowwarden.io/reference/checkpoint-store.md): Resume-token persistence backing @Checkpoint — contract, dual-token semantics, and how to plug in your own backend - [Configuration](https://docs.flowwarden.io/reference/configuration.md): All flowwarden.* application properties - [@DeadLetterQueue](https://docs.flowwarden.io/reference/dead-letter-queue.md): Automatically capture failed events for later investigation and reprocessing - [DlqStore SPI](https://docs.flowwarden.io/reference/dlq-store.md): Failed-event persistence backing @DeadLetterQueue — contract, FailedEvent record, and how to plug in your own backend - [@EnableFlowWarden](https://docs.flowwarden.io/reference/enable-flowwarden.md): Activate FlowWarden Change Stream processing - [Event Handlers](https://docs.flowwarden.io/reference/event-handlers.md): Route Change Stream events to specific methods with @OnChange, @OnInsert, @OnUpdate, @OnDelete, and @OnReplace. - [@Filter](https://docs.flowwarden.io/reference/filter.md): Application-side Java filtering for Change Stream events - [Handler Signatures](https://docs.flowwarden.io/reference/handler-signatures.md): Supported method signatures for FlowWarden event handlers, with mode exclusivity rules - [@OnInitial / @OnUpdate / @OnTerminal](https://docs.flowwarden.io/reference/javers-handlers.md): Typed handler annotations for Javers audit snapshot lifecycle events. - [@JaversStream](https://docs.flowwarden.io/reference/javers-stream.md): Declare a Javers audit stream handler for a specific entity type. - [LockService SPI](https://docs.flowwarden.io/reference/lock-service.md): Distributed lock backing DeploymentMode.SINGLE_LEADER — contract, default backends, and how to plug in your own - [@OnError](https://docs.flowwarden.io/reference/on-error.md): Intercept and control error handling before the standard retry/DLQ chain - [@Pipeline](https://docs.flowwarden.io/reference/pipeline.md): Server-side MongoDB aggregation pipeline for Change Streams — filtering events before they reach your application - [@RetryPolicy](https://docs.flowwarden.io/reference/retry-policy.md): Automatic retry with exponential backoff for failed Change Stream event handlers - [StreamMetricsProvider SPI](https://docs.flowwarden.io/reference/stream-metrics-provider.md): Fire-and-forget callbacks for collecting metrics from FlowWarden Change Streams - [Audit Log](https://docs.flowwarden.io/use-cases/audit-log.md): Build an immutable audit trail from database changes - [Cache Invalidation](https://docs.flowwarden.io/use-cases/cache-invalidation.md): Invalidate caches in real time across all instances - [Change Data Capture](https://docs.flowwarden.io/use-cases/cdc.md): Synchronize data between systems using CDC patterns - [CQRS](https://docs.flowwarden.io/use-cases/cqrs.md): Build read-model projections from MongoDB Change Streams - [Event-Driven Notifications](https://docs.flowwarden.io/use-cases/event-driven-notifications.md): Trigger notifications on database changes in real time ## Optional - [GitHub](https://github.com/flowwarden-io) - [Samples](https://github.com/flowwarden-io/flowwarden-examples)