Federator Overview
Purpose
This guide shows how to build, start, and validate a local Federator deployment. The Federator enables secure, policy-controlled data exchange between Integration Architecture (IA) Nodes for National Digital Twin Programme (NDTP) participation. It enforces minimum-trust (N2) requirements without shared infrastructure, credentials, or implicit trust between organisations.
For a conceptual overview of how the Federator works, see Concepts: Federator.
For the source developer documentation, see the Federator README on Github.
Recommended Starting Point
For a complete, runnable local setup (including configuration, identity, and end-to-end validation), start with:
This provides a single, step-by-step path to a working local deployment without trial and error.
Outcome
By completing this guide you will:
- Build the Federator Java artefacts and Docker images
- Start a local multi-client / multi-server federation topology
- Configure Federator Producers and Consumers communicating over gRPC with MTLS
- Validate secure Kafka-to-Kafka federation between organisational domains
- Confirm policy-driven message filtering using securityLabel headers
- Verify Redis-backed offset tracking for deterministic replay and resilience
- Configure and authorise via the Management-Node
- Produce federated RDF data ready for ingestion by downstream IA Nodes (e.g. federated.* topics)
- Verify Kafka-to-Kafka federation integrity
- Confirm compatibility with downstream IA Nodes consuming
federated.*topics (Optional)
Guide Structure
The guide follows the same staged lifecycle as the IA Node documentation. Each section introduces and validates a distinct capability.
-
End-to-End Local Setup (Recommended)
Complete runnable setup covering configuration, identity, and validation. -
Environment Set Up
Confirm platform requirements and tooling. -
Identity Set Up
Understand MTLS, certificates, token validation, and authorisation configuration. -
Build Components
Compile Java artefacts and build Docker images. -
Run & Validate
Start a federation topology and validate Producers, Consumers, filtering, and Kafka-to-Kafka flow. -
Optional Integration
Confirm downstream IA Node ingestion fromfederated.*topics. -
Reference
Topologies, configuration reference, troubleshooting guidance, and operational checks.
Prerequisites
Platform
- Linux, or Windows with WSL2 only
- Run from the WSL filesystem (e.g.
~/src) - Do not run from
/mnt/c(Docker volume semantics may cause permission and performance issues)
Required tools
- Docker CLI or Docker Desktop
- Java 21
- Git
- curl
Assumptions
- Kafka is provided via Docker Compose
- Management-Node and Identity Provider are preconfigured in the demo environment
- Some configuration values (e.g. IDP and TLS settings) must be populated for local execution
- This guide focuses on federation behaviour rather than IA Node internals
For the fastest path to a working system, start with:
Alternatively, follow the staged guide beginning with: