Step 8 of 8
Part 7: Run & Verify
Start the Consumer
./mvnw quarkus:dev -Dquarkus.profile=dev # Linux / macOS
mvnw.cmd quarkus:dev -Dquarkus.profile=dev # Windows
Verify the Flow
- Subscription created: The consumer log shows
Subscription created: id=..., queue=FFICE.v1... - Events received: The consumer log shows
FF-ICE event processedmessages every minute - MongoDB: Open http://localhost:9084 and check the
swim_fficedatabase for persisted events - Kafka: Open http://localhost:9085 and verify events appear in
ffice-flight-plan-topic,ffice-operations-topic, etc. - REST API: Query consumed events via
curl http://localhost:8080/api/v1/events
What You Get for Free from the Framework
The 10 domain classes you implement are the only FF-ICE-specific code. Everything else comes from swim-framework-consumer and the archetype:
- AMQP connection management and reconnection (self-healing)
- Subscription lifecycle (create, renew, pause, resume)
- Heartbeat monitoring
- Inbox/Outbox pattern with at-least-once delivery
- Idempotency (duplicate detection via content hash + Caffeine cache)
- Dead letter queue handling
- REST API for querying events, subscriptions, and operational metrics
- OpenTelemetry distributed tracing
- Micrometer metrics (Prometheus-compatible)
- Health checks (liveness + readiness probes)
- Fault tolerance (@Timeout, @Retry, @Bulkhead on outbox processing)
- MongoDB persistence with automatic index creation
Architecture Summary
End-to-end data flow between the consumer validator, Artemis, the Quarkus consumer, MongoDB, and Kafka:
flowchart LR
validator["ffice-consumer-validator\n(SM API + event generator)"]
artemis["Artemis\n:5672 AMQP"]
consumer["swim-ffice-consumer\n(Quarkus)"]
mongo["MongoDB"]
kafka["Kafka"]
validator -->|"publishes FF-ICE XML"| artemis
artemis -->|"AMQP"| consumer
consumer -->|"persists events"| mongo
consumer -->|"routes by message type"| kafka
validator -->|"SM REST API :8086"| consumer
Congratulations!
You built three projects: the FF-ICE JAXB model, the Quarkus consumer, and the consumer validator. With 36 tests passing (17 unit and 19 integration), you have a complete SWIM consumer that ingests FF-ICE XML, persists audit data, routes events by message type, and integrates with Subscription Manager and AMQP per the Yellow Profile patterns embodied in the framework.