Deployment patterns, modular design, and infrastructure overview
SWIM adoption accelerates when ATM entities collaborate. Our modular architecture enables different organizations to develop independent components that integrate seamlessly into a unified solution. The framework supports any SWIM service—current implementations include DNOTAM and ED-254, with the same architecture applicable to MET, Flight Data, and other services.
Demo Environment — This diagram shows all components deployed together for validation and testing. In production, Consumer and Provider are deployed independently by different organizations.
Air Navigation Service Providers deploy only the Consumer module. It connects to an external AISP (like EUROCONTROL EAD) via AMQP to receive DNOTAM events. Kafka distributes events to internal ATM systems.
Aeronautical Information Service Providers deploy only the Provider module. It receives events from internal systems via Kafka and exposes SWIM-compliant APIs (AMQP pub/sub + REST) to external consumers.
For validation and testing, all components deploy together in a single cluster. Consumer Validator simulates an AISP provider for testing consumers. Provider Validator tests provider implementations. This enables end-to-end testing without real infrastructure.
While Consumer and Provider are typically deployed by different organizations, there are valid operational scenarios where the same organization deploys both:
Note: This project focuses on demonstrating technical capabilities for SWIM compliance. The operational validity of specific scenarios should be verified with domain experts and relevant aviation authorities.
Each component is an independent, containerized module. One organization can focus on the Provider implementation—exposing SWIM-compliant interfaces and managing subscriptions—while another develops the Consumer module for receiving and processing events.
Both teams contribute to the same ecosystem: source code is shared on GitHub, and container images are published to a common registry. The result? A complete SWIM solution built through distributed collaboration.
All source code is available under the BSD 3-Clause License. Organizations are free to use, modify, and redistribute the code. Each member chooses their preferred technology stack—as long as the container interfaces remain compatible, the modules integrate seamlessly.
All container images are published to Quay.io, an enterprise-grade registry with built-in security features:
Automatic security analysis using Clair, detecting CVEs in base images and dependencies
Cryptographic signatures ensure image integrity and provenance verification
Visual security status for each image—green, yellow, or red based on vulnerability severity
Version control with immutable digests prevents accidental overwrites
CI/CD integration triggers rebuilds when base images are updated
All modules are open source. Fork, contribute, or use as reference for your implementation.
github.com/swim-developerPre-built, scanned, and signed images ready to deploy on any Kubernetes cluster.
quay.io/swim-developerANSPs, vendors, and developers can contribute modules, tests, or documentation.
See how to contributeAll service-to-service communication secured with mutual TLS via cert-manager; PKI ready for EACP integration.
AMQP for external SWIM network communication; Kafka for internal event streaming and module integration.
Metrics, traces, and logs correlated for complete operational visibility.
Start with our getting started guide or explore the framework architecture