Skip to content

mdaops/synapse

Repository files navigation

Developer Platform

A Crossplane-first developer control plane for Kubernetes that enables declarative infrastructure management with AI integration capabilities.

Architecture Overview

This platform uses Crossplane as the foundational infrastructure abstraction layer. The architecture enables:

  • Declarative infrastructure provisioning through Crossplane compositions
  • State synchronization from Kubernetes resources to external systems
  • AI agent integration through standardized APIs
  • Developer-friendly abstractions over complex infrastructure

Core Principles

Crossplane-First

  • All infrastructure provisioning and lifecycle management handled by Crossplane
  • Custom compositions define platform capabilities
  • Providers handle cloud resource management
  • XRDs define platform abstractions

Domain-Driven Structure

  • Services grouped by business capability, not technical hierarchy
  • Clear domain boundaries with well-defined interfaces
  • Each domain can evolve independently

State Synchronization

  • Single sync operator watches multiple Kubernetes resource types
  • Syncs resource state to central database for external consumption
  • Enables AI agents and external systems to query platform state

Directory Structure

developer-platform/
├── platform/                    # Crossplane Platform Definitions
│   ├── providers/              # Provider configurations (AWS, K8s, Helm, etc.)
│   ├── compositions/           # XRD compositions for platform capabilities
│   ├── xrds/                   # Custom Resource Definitions
│   └── configurations/         # Environment-specific configurations
│
├── identity/                   # Identity Management Domain
│   └── service/               # Identity service implementation
│
├── applications/              # Application Lifecycle Domain
│   ├── deployment/           # Application deployment logic
│   ├── scaling/              # Auto-scaling implementation  
│   ├── rollouts/             # Progressive delivery
│   └── catalog/              # Service catalog
│
├── control-plane/            # Platform Control Plane Domain
│   ├── orchestration/        # Resource orchestration
│   ├── provisioning/         # Infrastructure provisioning logic
│   ├── configuration/        # Configuration management
│   ├── networking/           # Service mesh, ingress management
│   ├── optimization/         # Resource optimization
│   └── sync-operator/        # K8s resource → database sync operator
│
├── governance/               # Platform Governance Domain
│   ├── policies/            # Policy definitions and enforcement
│   ├── compliance/          # Compliance validation
│   └── audit/               # Audit logging
│
├── cli/                     # Command Line Interface
│   ├── cmd/                # CLI commands
│   └── pkg/                # CLI packages
│
├── deployment/              # Deployment Artifacts
│   └── helm/               # Helm charts for platform services
│
└── docs/                   # Documentation
    ├── domains/            # Domain-specific documentation
    ├── architecture/       # Architecture documentation
    └── api-reference/      # API reference

Key Architectural Decisions

Why Crossplane-First?

  • Declarative Infrastructure: All infrastructure defined as code through compositions
  • Provider Ecosystem: Leverage existing Crossplane providers for cloud resources
  • Kubernetes Native: Infrastructure resources are Kubernetes resources
  • Extensible: Easy to add new capabilities through new compositions

Why Domain-Driven Structure?

  • Team Ownership: Teams can own entire business domains
  • Clear Boundaries: Well-defined interfaces between domains
  • Independent Evolution: Domains can be developed and deployed independently
  • Business Alignment: Structure reflects business capabilities

Why Single Sync Operator?

  • Simplicity: One operator handles all resource types
  • Efficiency: Shared database connection and sync logic
  • Consistency: Unified approach to state synchronization
  • Maintainability: Single point of control for external state management

What We Deliberately Excluded

  • Observability: Using external monitoring solutions (Prometheus, Grafana, etc.)
  • AI/ML Infrastructure: Leveraging external AI providers (Anthropic, OpenAI, etc.)
  • Complex UI Frameworks: Starting with CLI-first approach
  • Custom Infrastructure Operators: Crossplane compositions handle most cases

Data Flow

Developer → CLI → Kubernetes API → Crossplane → Cloud Resources
                                      ↓
                               Sync Operator → Database → External APIs → AI Agents
  1. Developers interact through CLI to create platform resources
  2. Kubernetes API receives resource definitions
  3. Crossplane provisions actual cloud infrastructure
  4. Sync Operator watches resources and syncs state to database
  5. External APIs serve state data for AI agents and other consumers

Getting Started

[TODO: Add setup instructions once implementation begins]

Contributing

[TODO: Add contribution guidelines]

About

developer control plane

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages