ποΈ Control Core Architecture
This guide provides a comprehensive overview of Control Core's architecture, component interactions, data flows, and deployment patterns.
ποΈ Dual Environment Architecture (Default Model)
Control Core exclusively uses a dual environment deployment model similar to Stripe's test/live mode. This is the foundational design, not an optional feature.
Default Deployment: One Control Plane, Multiple Bouncer Pairs
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CONTROL PLANE (Single Instance) β
β Manages Both Environments β
β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Admin UI β β API β β Policy Bridgeβ β
β β (Frontend) β β (Backend) β β Server β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β
β β’ All policies managed here β
β β’ Tracks bouncer pairs β
β β’ Sandbox & Production separation β
ββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββΌβββββββββββββββββββ
β (REQUIRED) β (OPTIONAL) β
βΌ βΌ βΌ
ββββββββββββββββββββ ββββββββββββββββββββ
β Sandbox Bouncer ββββββProduction Bouncerβ
β (START HERE) βPAIRβ (Add Later) β
β ββββββ β
β ENVIRONMENT= β β ENVIRONMENT= β
β sandbox β β production β
β β β β
β RESOURCE_NAME= β β RESOURCE_NAME= β
β "Payment API" β β "Payment API" β β SAME (Paired)
β β β β
β Test Resources β β Live Resources β
ββββββββββββββββββββ ββββββββββββββββββββ
CREATE POLICIES ENFORCE PROMOTED
TEST HERE POLICIES HERE
(One pair shown; deploy multiple such pairsβone per logical resource.)
Key Concepts
- One Control Plane, Multiple Bouncers: A single Control Plane instance manages all bouncers; you deploy as many bouncer pairs as you have logical resources to protect.
- Bouncers Come in Pairs: Each logical resource (e.g., "Payment API") has a sandbox bouncer and a production bouncer, paired by the same
RESOURCE_NAME. - Resources Are in Pairs: The Control Plane creates or links a sandbox resource and a production resource per logical resource (one per bouncer); pairing is by
RESOURCE_NAMEand environment. - Sandbox is Required: All policy development happens in sandbox first.
- Production Pairs with Sandbox: Deploy a production bouncer with the same
RESOURCE_NAMEas its sandbox pair when ready. - Policy Promotion: Policies created in sandbox, promoted to production.
- API Key Separation:
sk_test_for sandbox,sk_live_for production.
ποΈ High-Level Architecture
Control Core uses a distributed architecture designed for scalability, performance, and reliability across any cloud provider or on-premises infrastructure.
Access Path Overview
Before any subject reaches a protected resource, Control Core places the Bouncer in the request path and evaluates policy first.
Click to enlarge
This is the core Control Core pattern: subject -> request -> Bouncer / PEP -> policy decision -> resource. A request is denied and logged before it can touch the resource unless policy explicitly allows it.
Interactive Distributed Architecture
Choose a component to see its role in the request path.
Every request begins with a subject such as a user, service call, workflow, or AI agent. Control Core treats them as policy-evaluated requests before they reach any protected target.
Review the request pathThe Bouncer is the policy enforcement point at the edge. It receives the request, builds the authorization context, checks cache when possible, and blocks or forwards the request.
See bouncer deploymentOperators and policy teams use the Control Plane UI and API to manage policies, connect repositories, register resources, inspect audits, and govern rollout across sandbox and production.
Open the admin guidePolicy Bridge keeps bouncers aligned with the latest enabled policy and integration data, so you do not have to update each enforcement point manually.
Read the architecture guideThe protected resource can be an API, application, data path, or LLM route. It is reached only after Control Core explicitly allows the request.
Explore AI governance
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLIENT APPLICATIONS β
β (Web Apps, Mobile Apps, APIs, AI Agents) β
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
β HTTPS/API Calls
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β POLICY ENFORCEMENT POINT (BOUNCER) β
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Reverse β β β Policy β β β Forward β β
β β Proxy β β Decision β β to Target β β
β ββββββββββββββββ β Point β ββββββββββββββββ β
β ββββββββ¬ββββββββ β
β β β
β ββββββββΌββββββββ β
β β Policy Cache β β
β βDecision Cacheβ β
β ββββββββββββββββ β
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
β Policy Sync (WebSocket)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β POLICY BRIDGE (Policy Distribution) β
β β
β - Monitors policy repositories (Git) β
β - Distributes policies to all Bouncers β
β - Publishes data from integrations β
β - Real-time updates via WebSocket β
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββΌβββββββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β Policy β β External β β Protected β
β Repository β β Data Sources β β Target β
β (Git/GitHub) β β (PIP) β β Application β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β²
β
β API Calls
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β POLICY ADMINISTRATION POINT (CONTROL PLANE) β
β β
β ββββββββββββββββββββββββ ββββββββββββββββββββββββ β
β β Administration β β Administration β β
β β Console (UI) β β API (Backend) β β
β β β β β β
β β - Policy Management β β - Policy CRUD β β
β β - User Management β β - Authentication β β
β β - Resource Config β β - Decision Logging β β
β β - Monitoring β β - Integration Mgmt β β
β ββββββββββββββββββββββββ ββββββββββββ¬ββββββββββββ β
β β β
β βββββββββββββββββββββββββββββΌβββββββββββ β
β βΌ βΌ βΌ β
β ββββββββββββββββ ββββββββββββββββ ββββββββββ β
β β Database β β Cache β β Policy β β
β β β β β β Editor β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ποΈ Core Components
Policy Administration Console
Purpose: Web-based user interface for managing policies, users, and resources
Key Features:
- Visual policy builder (no-code)
- Code editor with policy syntax support
- Policy testing framework
- User and resource management
- Real-time monitoring dashboards
- Audit log viewer
Technology: Modern web application Access: HTTPS on port 3000 (configurable) Deployment: Stateless, horizontally scalable
Policy Administration API
Purpose: Backend service powering the Control Plane
Key Features:
- RESTful API for policy operations
- User authentication and authorization
- Decision logging and analytics
- Integration management (PIP)
- Webhook support
Access: HTTPS on port 8082 (configurable) Deployment: Stateless, horizontally scalable Database: Primary data store for persistence Cache: In-memory store for performance
Policy Enforcement Point (Bouncer)
Purpose: Enforces policies on incoming requests
Control Core uses a Unified Bouncer model: a single bouncer process serves both standard API traffic and GenAI traffic. The same OPA-based authorization and ext_proc (PII masking) pipeline apply to both. For GenAI traffic (e.g. /v1/chat/completions), the bouncer additionally redacts PII in request bodies (prompts), applies prompt-guard (jailbreak) checks, and can enforce token-based rate limits. See AI Governance for details.
Key Features:
- Reverse proxy functionality
- Sub-100ms policy evaluation
- Decision caching
- Content injection (for AI agents)
- Comprehensive audit logging
- Target application protection
- Unified API + GenAI: One bouncer for APIs and LLM routes; OPA controls who can use which models; optional token rate limiting and prompt guard
Access: HTTPS on port 8080 (configurable) Deployment: Stateless, highly scalable (10+ instances common) Integration: Connects to Policy Bridge for policy sync
Policy Bridge
Purpose: Distributes policies and data to all Bouncers in real-time
Key Features:
- Monitors policy repositories (Git) for changes
- Publishes data from integrations
- Real-time distribution via WebSocket
- Handles thousands of connected clients
- Leader election for high availability
Access: WebSocket/HTTP on port 7000 (configurable) Deployment: 2-3 replicas with leader election
Policy Language Server
Purpose: Provides IDE support for policy development
Key Features:
- Syntax highlighting
- IntelliSense and auto-completion
- Real-time validation
- Error detection
- Go-to-definition
Integration: VS Code, JetBrains, Monaco Editor Deployment: Optional (enhances developer experience)
ποΈ Data Flow
Policy Bridge Flow (Policy Distribution)
The following diagram shows how policies and integration data flow from the Control Plane to all bouncers via the Policy Bridge.
Click to enlarge
The Policy Bridge (Control Bridge) operates between the Control Plane, Git/GitHub (policy repository), and Bouncers: it monitors the policy repo (and/or receives updates from the Control Plane API), and distributes policies and PIP data to bouncers. Policyβbouncer linking: When a policy or control is created in the Policy Builder (page 1), it is linked to a Resource and Bouncer. The Policy Bridge (Policy Bridge) syncs that policy only to the selected bouncer(s) for that resourceβeach bouncer receives only the policies linked to its resource(s). The Git/GitHub connection is part of this flow, not optional.
Draft, activated, and archived storage: The same policyβresource linking affects where policies live and who receives them:
- GitHub: Policies are stored under resource-scoped paths:
policies/{resource_slug}/sandbox/draft,policies/{resource_slug}/sandbox/enabled,policies/{resource_slug}/sandbox/disabled,policies/{resource_slug}/sandbox/archived, and the same underproduction/. So each resource (and thus each bouncerβs Policy Bridgefolder_path) has its own draft, enabled, disabled, and archived folders. - Control Plane: Policy status (draft, enabled, disabled, archived), environment (sandbox/production/both), and
resource_idare stored in the database. The Control Plane is the source of truth for status; GitHub paths are updated when you save, enable, disable, promote, or archive. - Bouncers: Each bouncerβs Policy Bridge client is configured with a
folder_pathlikepolicies/{resource_slug}/{environment}. It receives only enabled policies for that resource (and environment). Draft and archived policies are not synced to bouncers.
Policy Creation and Deployment Flow
1. Policy Developer writes policy in Console
β
2. Policy validated (syntax, semantics)
β
3. Policy tested with test cases
β
4. Policy saved to database
β
5. Policy committed to Git repository (when using Git-backed workflow)
β
6. Policy Bridge (Control Bridge) detects policy change from Git and/or Control Plane
β
7. Policy Bridge distributes to the relevant Bouncer(s) via WebSocket (only bouncers linked to that policyβs resource receive it)
β
8. Bouncers receive and compile policy
β
9. Policy active (typically < 30 seconds)
β
10. Requests evaluated against new policy
Authorization Request Flow
When a client sends a request, the bouncer evaluates policy and either forwards the request or returns 403.
Click to enlarge
Step-by-step:
1. Client sends request to protected application
β
2. Bouncer intercepts request
β
3. Bouncer extracts context (user, resource, action)
β
4. Check decision cache
ββ If cached β Return cached decision (5-10ms)
ββ If not cached β
5. Evaluate policy
ββ Load policy from cache
ββ Load integration data (if needed)
ββ Evaluate policy rules
ββ Generate decision (20-50ms)
β
6. Cache decision (if cacheable)
β
7. Log decision for audit
β
8. If PERMIT: Forward request to target application
If DENY: Return 403 Forbidden
β
9. Return response to client
PIP Integration Data Flow
Data from external sources (identity providers, HR, databases) is synced into the Control Plane, then distributed to bouncers so policies can use it at evaluation time.
Click to enlarge
Step-by-step:
1. Admin configures data source in Console
β
2. Control Plane tests connection
β
3. Attributes mapped to policy schema
β
4. Sync scheduled (hourly, daily, real-time)
β
5. At sync time: Fetch data from source
β
6. Transform data to standard format
β
7. Publish to Policy Bridge
β
8. Policy Bridge distributes to all Bouncers
β
9. Bouncers update local policy cache
β
10. Data available in policies immediately
(data.policy_data.source.type.*)
π€ AI Governance
When the bouncer is configured with LLM routes (AI Pilot), it acts as a Unified Bouncer for both standard API and GenAI traffic:
- Real-time PII redaction: ext_proc masks PII in LLM request bodies (prompts) before sending to OpenAI/Azure, and continues to mask PII in responses for standard API and optionally for LLM responses.
- Model-agnostic routing: The bouncer routes by path and model to OpenAI or Azure OpenAI; OPA controls who can use which model.
- Cost and token tracking: Token rate limiting (e.g. 1k tokens/day per user) via AI Gatewayβstyle policies; Redis is required for global rate limiting across replicas; an optional local fallback can be documented.
- Prompt guard: Blocking or sanitizing prompts that contain jailbreak phrases (e.g. "ignore all instructions") is implemented in ext_proc.
Traffic flow: Client β Bouncer β (OPA check β PII masking [request for LLM, response for API] β token count / prompt guard for LLM) β LLM provider or target service.
Click to enlarge
Click to enlarge
For configuration and AI Pilot settings, see AI Governance.
π Deployment Architecture Patterns
Pattern 1: Self-Hosted (Kickstart / Enterprise)
Your Infrastructure (Cloud or On-Premises)
βββββββββββββββββββββββββββββββββββββββββββββββββ
β βββββββββββββββ β
β β Console β β Users manage policies β
β ββββββββ¬βββββββ β
β β β
β βΌ β
β βββββββββββββββ ββββββββββββ β
β β API β ββ β Database β β
β ββββββββ¬βββββββ ββββββββββββ β
β β β
β βΌ β
β βββββββββββββββ β
β β Policy Bridgeβ β
β ββββββββ¬βββββββ β
β β β
β βΌ β
β βββββββββββββββ ββββββββββββββββ β
β β Bouncer(s) β β β Your Apps β β
β βββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββ
Use Case: Complete control, data sovereignty, on-premises Benefits: Full control, no external dependencies Deployment: Docker Compose or Kubernetes
Pattern 2: Hybrid (Pro Plan)
Control Core Hosted Your Infrastructure
βββββββββββββββββββββββ ββββββββββββββββββββ
β ββββββββββββ β β β
β β Console β β β ββββββββββββββ β
β ββββββ¬ββββββ β β β Bouncer(s) β β
β β β β βββββββ¬βββββββ β
β βΌ β β β β
β ββββββββββββ β HTTPS/ β βΌ β
β β API βββββββββΌβ WSS βββββ ββββββββββββ β
β ββββββ¬ββββββ β β βYour Apps β β
β β β β ββββββββββββ β
β ββββββΌβββββ β β β
β β Policy Bridge ββββΌβββββββββββ β
β βββββββββββ β β β
βββββββββββββββββββββββ ββββββββββββββββββββ
Use Case: Managed Control Plane, self-hosted enforcement Benefits: Reduced infrastructure, Control Core manages updates Deployment: Bouncer only (Docker or Kubernetes)
Pattern 3: Multi-Region Enterprise
Region 1 (Primary) Region 2 (Replica) Region 3 (Replica)
ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
β Control Plane β β Control Plane β β Control Plane β
β - Console x3 β β - Console x3 β β - Console x3 β
β - API x5 βββββββΊβ - API x5 ββββββΊβ - API x5 β
β - Policy Bridge x3βSync β - Policy Bridge x3βSync β - Policy Bridge x3β
β - DB Primary β β - DB Replica β β - DB Replica β
β - Bouncer x10 β β - Bouncer x10 β β - Bouncer x10 β
ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
Use Case: Global deployment, low latency, disaster recovery Benefits: Geographic distribution, fault tolerance Deployment: Kubernetes multi-cluster
π Security Architecture
Defense in Depth
Layer 1: Network Security
ββ Firewall rules
ββ VPC/VNET isolation
ββ Security groups
ββ DDoS protection
Layer 2: Transport Security
ββ TLS 1.3 encryption
ββ Certificate management
ββ mTLS (optional)
ββ Perfect forward secrecy
Layer 3: Authentication
ββ SAML/SSO
ββ OAuth 2.0
ββ MFA
ββ Session management
Layer 4: Authorization
ββ Policy-based access control
ββ Context-aware decisions
ββ Real-time enforcement
ββ Audit logging
Layer 5: Data Security
ββ Encryption at rest
ββ Encryption in transit
ββ Secrets management
ββ Data minimization
Layer 6: Application Security
ββ Input validation
ββ SQL injection prevention
ββ XSS protection
ββ CSRF protection
Layer 7: Monitoring
ββ Security event detection
ββ Anomaly detection
ββ Audit logging
ββ Incident response
Network Architecture
Cloud-Agnostic Network Design:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Public Zone β
β β
β ββββββββββββββββββ ββββββββββββββββββ β
β β Load Balancer β β Load Balancer β β
β β (Console/API) β β (Bouncer) β β
β βββββββββ¬βββββββββ βββββββββ¬βββββββββ β
ββββββββββββΌββββββββββββββββββββββββββΌββββββββββββββββββββββββββ
β β
ββββββββββββΌββββββββββββββββββββββββββΌββββββββββββββββββββββββββ
β β Application Zone β β
β βΌ βΌ β
β ββββββββββββββββ ββββββββββββββββ β
β β Console β β Bouncer(s) β β
β β API β β β β
β β Policy Bridge β β β β
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ β
βββββββββββΌβββββββββββββββββββββββββββΌβββββββββββββββββββββββββββ
β β
βββββββββββΌβββββββββββββββββββββββββββΌβββββββββββββββββββββββββββ
β β Data Zone β β
β βΌ βΌ β
β ββββββββββββββββ ββββββββββββββββ β
β β Database β β Target β β
β β (PostgreSQL)β β Application β β
β β β β β β
β β Cache β β β β
β β (Redis) β β β β
β ββββββββββββββββ ββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Component Interaction
Component Communication
Control Plane (Console β API):
- Protocol: HTTPS
- Auth: JWT tokens
- Pattern: REST API
- Latency: < 100ms
API β Database:
- Protocol: PostgreSQL wire protocol (TLS)
- Auth: Username/password
- Connection pool: 20-50 per API instance
- Latency: < 10ms
API β Redis:
- Protocol: Redis protocol (TLS optional)
- Auth: Password
- Connection pool: 10-20 per API instance
- Latency: < 5ms
Policy Bridge β Bouncers:
- Protocol: WebSocket (WSS)
- Auth: Client tokens
- Pattern: Pub/Sub
- Latency: < 100ms for updates
Bouncer β Target App:
- Protocol: HTTP/HTTPS
- Auth: Preserves original auth
- Pattern: Reverse proxy
- Latency: Minimal overhead (< 10ms)
ποΈ Scalability Architecture
Horizontal Scaling
Stateless Components (scale easily):
- Policy Administration Console: 3-10 replicas
- Policy Administration API: 5-20 replicas
- Bouncer/PEP: 10-100+ replicas
- Policy Bridge: 2-3 replicas (leader election)
Stateful Components (scale with replication):
- PostgreSQL: Primary + 1-2 read replicas
- Redis: Cluster mode (6+ nodes) or Sentinel (3+ nodes)
Vertical Scaling
Resource Recommendations:
| Component | Small | Medium | Large | Enterprise |
|---|---|---|---|---|
| Console | 512MB/0.5CPU | 1GB/1CPU | 2GB/2CPU | 4GB/4CPU |
| API | 1GB/1CPU | 2GB/2CPU | 4GB/4CPU | 8GB/8CPU |
| Bouncer | 512MB/1CPU | 1GB/2CPU | 2GB/4CPU | 4GB/8CPU |
| Policy Bridge | 512MB/0.5CPU | 1GB/1CPU | 2GB/2CPU | 4GB/4CPU |
| Database | 2GB/2CPU | 4GB/4CPU | 8GB/8CPU | 16GB/8CPU |
| Redis | 512MB/1CPU | 1GB/2CPU | 2GB/4CPU | 4GB/8CPU |
π Cloud-Agnostic Design
Control Core is designed to run on any infrastructure:
Supported Platforms
Public Cloud:
- AWS (EKS, ECS, EC2)
- Google Cloud (GKE, Cloud Run, GCE)
- Microsoft Azure (AKS, Container Instances, VMs)
- DigitalOcean (Kubernetes, Droplets)
- Linode (LKE, Compute Instances)
- Oracle Cloud
- IBM Cloud
- Alibaba Cloud
Private Cloud:
- VMware vSphere
- OpenStack
- Proxmox
On-Premises:
- Bare metal servers
- Virtual machines
- Private Kubernetes clusters
Hybrid:
- Mix of cloud and on-premises
- Multi-cloud deployments
- Edge computing
Cloud Provider Services
Equivalent Services Across Clouds:
| Service Type | AWS | GCP | Azure | Generic |
|---|---|---|---|---|
| Kubernetes | EKS | GKE | AKS | Any K8s |
| Database | RDS PostgreSQL | Cloud SQL | Azure Database | PostgreSQL |
| Cache | ElastiCache | Memorystore | Azure Cache | Redis |
| Load Balancer | ALB/NLB | Cloud LB | Azure LB | NGINX |
| DNS | Route 53 | Cloud DNS | Azure DNS | Any DNS |
| Secrets | Secrets Manager | Secret Manager | Key Vault | Vault |
| Monitoring | CloudWatch | Cloud Monitoring | Azure Monitor | Prometheus |
Control Core works with all of these or self-hosted alternatives.
ποΈ High Availability Architecture
Component Redundancy
For 99.9% uptime:
- Console: 3 replicas across availability zones
- API: 3+ replicas with load balancing
- Bouncer: 5+ replicas with health checks
- Policy Bridge: 3 replicas with leader election
- Database: Primary + 2 read replicas with auto-failover
- Redis: 6-node cluster or Sentinel with 3 nodes
For 99.99% uptime:
- Multi-region deployment
- Cross-region database replication
- Global load balancing
- Automated failover
Failure Scenarios
Bouncer Failure:
- Impact: Requests to that Bouncer fail
- Mitigation: Load balancer routes to healthy Bouncers
- Recovery Time: Immediate (< 1 second)
API Failure:
- Impact: Cannot create/modify policies (enforcement continues)
- Mitigation: Multiple API replicas
- Recovery Time: Immediate (< 1 second)
Policy Bridge Failure:
- Impact: Policy updates delayed (enforcement continues with cached policies; bouncers use last-known policies)
- Mitigation: Leader election, automatic failover
- Recovery Time: 10-30 seconds
Database Failure:
- Impact: Cannot modify policies (enforcement continues)
- Mitigation: Automatic failover to replica
- Recovery Time: 30-60 seconds
Complete Region Failure:
- Impact: Regional services unavailable
- Mitigation: DNS failover to secondary region
- Recovery Time: 2-5 minutes
ποΈ Performance Architecture
Caching Strategy
Three-Level Caching:
Level 1: Bouncer Policy Cache
ββ What: Compiled policies
ββ TTL: 5-15 minutes
ββ Hit Rate: 90-95%
ββ Impact: Fastest evaluation
Level 2: Bouncer Decision Cache
ββ What: Authorization decisions
ββ TTL: 1-5 minutes
ββ Hit Rate: 80-90%
ββ Impact: No policy evaluation needed
Level 3: PIP Data Cache (Redis)
ββ What: External data from integrations
ββ TTL: 5-60 minutes (based on sensitivity)
ββ Hit Rate: 85-95%
ββ Impact: No external API calls
Performance Optimization
Latency Targets:
- Policy evaluation: < 50ms (P95)
- Total request overhead: < 100ms (P95)
- Policy sync propagation: < 30 seconds
- PIP data sync: < 60 seconds
Throughput Targets:
- Per Bouncer: 500-1,000 req/sec
- 10 Bouncers: 5,000-10,000 req/sec
- 100 Bouncers: 50,000-100,000 req/sec
ποΈ Disaster Recovery Architecture
Backup Strategy
What to Backup:
- PostgreSQL database (policies, users, audit logs)
- Configuration files
- Secrets (encrypted)
- Custom policies from Git
Backup Frequency:
- Database: Every 6 hours
- Configuration: Daily
- Full system: Weekly
- Continuous: Transaction logs
Retention:
- Daily backups: 30 days
- Weekly backups: 90 days
- Monthly backups: 7 years (compliance)
Recovery Objectives
RTO (Recovery Time Objective):
- Kickstart: < 4 hours
- Pro: < 2 hours (Control Plane managed)
- Enterprise: < 1 hour (with proper HA)
RPO (Recovery Point Objective):
- Kickstart: < 6 hours
- Pro: < 1 hour
- Enterprise: < 15 minutes (with WAL archiving)
ποΈ Integration Architecture
PIP Integration Pattern
External Systems Control Core
ββββββββββββββββ βββββββββββββββββββ
β Okta β β β
β (OAuth) β ββββββββββ PIP Service β
ββββββββββββββββ β (API Layer) β
ββββββββββ¬βββββββββ
ββββββββββββββββ β
β Workday β β
β (API Key) β ββββββββββββββββββ€
ββββββββββββββββ β
βΌ
ββββββββββββββββ βββββββββββββββββββ
β Database β β Transform & β
β (PostgreSQL)β ββββββββββ Normalize β
ββββββββββββββββ ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ
β Policy Bridge β
β (Distribute) β
ββββββββββ¬βββββββββ
β
βββββββββββββββΌββββββββββββββ
βΌ βΌ βΌ
βββββββββββ βββββββββββ βββββββββββ
βBouncer 1β βBouncer 2β βBouncer Nβ
βββββββββββ βββββββββββ βββββββββββ
Webhook Integration Pattern
External Event Control Core Action
ββββββββββββββββ βββββββββββββββββββ ββββββββββββββββ
β Okta β β β β β
β User updated β ββββββββββ Webhook Handler βββββββ Update User β
ββββββββββββββββ POST βββββββββββ¬ββββββββ β Context β
β ββββββββββββββββ
ββββββββββββββββ β ββββββββββββββββ
β Policy β β β Send to β
β Decision Madeβ ββββββββββββββββββ β€ β External β
ββββββββββββββββ Trigger Action β β System β
β ββββββββββββββββ
βΌ
βββββββββββββββββββ
β Policy Bridge β
βββββββββββββββββββ
π Deployment Considerations
Choosing Cloud Provider
Considerations:
- Cost: Compare pricing across providers
- Existing Infrastructure: Use where you already have presence
- Geographic Requirements: Data residency, latency
- Compliance: Provider certifications
- Features: Specific cloud services needed
Control Core works equally well on all major clouds - choose based on your needs, not limitations.
Kubernetes vs Docker Compose
Use Kubernetes when:
- Production deployments
- Need auto-scaling
- Multi-region requirements
- High availability required
- Enterprise scale (> 100 users)
Use Docker Compose when:
- Development/testing
- Small deployments (< 50 users)
- Simple infrastructure
- Quick setup needed
- Learning/evaluation
π οΈ Troubleshooting
| Issue | What to check |
|---|---|
| Components cannot reach each other | Verify network connectivity, DNS, and firewall rules between Control Plane, bouncers, and storage (Postgres, Redis). |
| Policy Bridge or bouncer sync issues | Ensure Policy Bridge and API are reachable from bouncers. Check API key and Control Plane URL in bouncer config. |
| Storage or database errors | Check Postgres connectivity and credentials. Ensure Redis is running if used for caching. Review Control Plane logs. |
| High availability or scaling | See Control Plane Scaling and High Availability Architecture. |
For detailed steps, see the Troubleshooting Guide.
π Next Steps
- Kickstart Deployment: Self-hosted with Docker Compose
- Pro Deployment: Hybrid deployment
- Enterprise Deployment: Production Kubernetes
- Enterprise Architecture: Advanced enterprise patterns
- Security Best Practices: Secure your deployment
Control Core's cloud-agnostic architecture ensures you're never locked into a single provider and can deploy wherever your business requires.