Skip to main content

Federation Service Architecture

Overview

The Federation Service acts as a middleware layer between the Gateway and individual microservices, providing federated query capabilities.

Architecture Diagram

┌─────────────┐
│ Gateway │
└──────┬──────┘


┌─────────────────────┐
│ Federation Service │
│ (Python/FastAPI) │
└──────┬───────────────┘

├──► Service Discovery (Redis)

├──► Schema Cache (PostgreSQL)

└──► Individual Services
├──► Gateway (GraphQL)
├──► Payment (GraphQL)
├──► Authentication (GraphQL)
└──► Other Services

Components

API Layer (FastAPI)

  • GraphQL Endpoint - Federated query execution
  • Schema Management - Introspection and caching
  • Health Monitoring - Service health checks

Service Discovery

  • Redis-based - Discover services via Redis
  • Static Configuration - Fallback to static service list

Schema Caching

  • PostgreSQL - Store introspected schemas
  • TTL-based Refresh - Automatic schema refresh
  • Manual Refresh - On-demand schema updates

Query Execution Flow

  1. Receive Query - Federation service receives federated query
  2. Parse Query - Analyze query to identify required services
  3. Route to Services - Send sub-queries to appropriate services
  4. Combine Results - Merge results from multiple services
  5. Return Response - Send combined result to client

Error Handling

  • Retry Logic - Automatic retry for failed service calls
  • Circuit Breaker - Prevent cascading failures
  • Fallback - Graceful degradation when services unavailable

Performance

  • Schema Caching - Reduces introspection overhead
  • Parallel Queries - Execute sub-queries in parallel
  • Connection Pooling - Efficient database and HTTP connections