Federation Service Configuration
Environment Variables
Database
DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/federation_dev
Redis
REDIS_URL=redis://localhost:6379
Service Configuration
# Server
HOST=0.0.0.0
PORT=8020
# Logging
LOG_LEVEL=info
# Schema Cache TTL (seconds)
SCHEMA_CACHE_TTL=3600
# Service Discovery
SERVICE_DISCOVERY_TYPE=redis # or static
SERVICE_DISCOVERY_REDIS_KEY=saga:services
# Static Service List (if not using Redis)
STATIC_SERVICES='[
{"name": "gateway", "url": "http://gateway:8000/api/graphql"},
{"name": "payment", "url": "http://payment:8001/api/graphql"}
]'
OpenTelemetry
OTLP_ENDPOINT=http://otel-collector:4317
OTLP_SERVICE_NAME=federation
Configuration Files
pyproject.toml
Project dependencies and metadata.
alembic.ini
Database migration configuration.
Service Discovery
Redis-based Discovery
Services register themselves in Redis, and Federation Service discovers them automatically.
Static Configuration
For environments without service discovery, configure services statically via environment variables.
Schema Caching
Schemas are cached in PostgreSQL with configurable TTL. Set SCHEMA_CACHE_TTL to control refresh frequency.