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

  1. Subscription created: The consumer log shows Subscription created: id=..., queue=FFICE.v1...
  2. Events received: The consumer log shows FF-ICE event processed messages every minute
  3. MongoDB: Open http://localhost:9084 and check the swim_ffice database for persisted events
  4. Kafka: Open http://localhost:9085 and verify events appear in ffice-flight-plan-topic, ffice-operations-topic, etc.
  5. 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.