Files
nats-console/DESIGN.md
T
Fizer Khan ede3b87d8c add cluade.
update design file.
2025-12-04 21:18:12 +05:30

406 KiB

NATS JetStream Management Console - System Design Document

Executive Summary

A modern, enterprise-grade web console for managing NATS JetStream clusters, inspired by Redpanda Console and Confluent Control Center. This design covers architecture, database schemas, UI/UX patterns, authentication, and analytics infrastructure.


1. System Architecture Overview

1.1 High-Level Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│                              CLIENTS                                         │
│                    (Web Browsers / Mobile / API Consumers)                   │
└─────────────────────────────────────────────────────────────────────────────┘
                                      │
                                      ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                           LOAD BALANCER / CDN                                │
│                         (Nginx / Cloudflare / AWS ALB)                       │
└─────────────────────────────────────────────────────────────────────────────┘
                                      │
                    ┌─────────────────┴─────────────────┐
                    ▼                                   ▼
┌──────────────────────────────┐      ┌──────────────────────────────────────┐
│      FRONTEND (Next.js)      │      │         API GATEWAY                   │
│  ─────────────────────────── │      │  ────────────────────────────────────│
│  • SSR/SSG Pages             │      │  • Rate Limiting                     │
│  • React Components          │      │  • Request Validation                │
│  • TanStack Query            │      │  • API Versioning                    │
│  • Zustand State             │      │  • Request Logging                   │
│  • Tailwind CSS              │      │  • CORS Handling                     │
│  • shadcn/ui Components      │      └──────────────────────────────────────┘
└──────────────────────────────┘                        │
                                                        ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                        BACKEND SERVICES (Node.js/TypeScript)                 │
├─────────────────┬─────────────────┬─────────────────┬───────────────────────┤
│  Auth Service   │  Core API       │  Analytics      │  Background Workers   │
│  ────────────── │  Service        │  Service        │  ───────────────────  │
│  • JWT/Sessions │  ────────────── │  ───────────────│  • Metrics Collector  │
│  • OAuth/OIDC   │  • Streams CRUD │  • Query Engine │  • Alert Processor    │
│  • RBAC Engine  │  • Consumers    │  • Aggregations │  • Audit Logger       │
│  • User Mgmt    │  • Messages     │  • Dashboards   │  • Cleanup Jobs       │
│  • Teams/Orgs   │  • Cluster Ops  │  • Reports      │  • Sync Jobs          │
└─────────────────┴─────────────────┴─────────────────┴───────────────────────┘
         │                 │                 │                    │
         ▼                 ▼                 ▼                    ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                            DATA LAYER                                        │
├──────────────────┬──────────────────┬──────────────────┬────────────────────┤
│   PostgreSQL     │     Redis        │   ClickHouse     │   NATS JetStream   │
│   ────────────── │   ────────────── │   ──────────────│   ────────────────  │
│   • Users/Auth   │   • Sessions     │   • Metrics TS   │   • Streams        │
│   • Teams/Orgs   │   • Cache        │   • Audit Logs   │   • Consumers      │
│   • Permissions  │   • Rate Limits  │   • Message Stats│   • Messages       │
│   • Configs      │   • Real-time    │   • Aggregates   │   • Cluster State  │
│   • Audit Meta   │   • Pub/Sub      │   • Long History │   • KV Store       │
└──────────────────┴──────────────────┴──────────────────┴────────────────────┘

1.2 Service Communication

┌─────────────────────────────────────────────────────────────────┐
│                    COMMUNICATION PATTERNS                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌──────────┐    REST/GraphQL    ┌──────────────┐               │
│  │ Frontend │◄──────────────────►│  API Gateway │               │
│  └──────────┘                    └──────────────┘               │
│                                         │                        │
│                         ┌───────────────┼───────────────┐       │
│                         ▼               ▼               ▼       │
│                  ┌──────────┐    ┌──────────┐    ┌──────────┐  │
│                  │   Auth   │    │   Core   │    │Analytics │  │
│                  │ Service  │    │  Service │    │ Service  │  │
│                  └──────────┘    └──────────┘    └──────────┘  │
│                         │               │               │       │
│                         └───────────────┼───────────────┘       │
│                                         │                        │
│                              Internal gRPC / NATS                │
│                                         │                        │
│                         ┌───────────────┴───────────────┐       │
│                         ▼                               ▼       │
│                  ┌──────────────┐              ┌──────────────┐ │
│                  │   Workers    │              │    NATS      │ │
│                  │ (JetStream)  │              │  JetStream   │ │
│                  └──────────────┘              └──────────────┘ │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

2. Database Schema Design

2.1 PostgreSQL Schema (Application Data)

┌─────────────────────────────────────────────────────────────────────────────┐
│                         POSTGRESQL SCHEMA                                    │
└─────────────────────────────────────────────────────────────────────────────┘

┌────────────────────────┐      ┌────────────────────────┐
│      organizations     │      │         users          │
├────────────────────────┤      ├────────────────────────┤
│ id              UUID PK│      │ id              UUID PK│
│ name            VARCHAR│      │ email           VARCHAR│
│ slug            VARCHAR│◄────┐│ password_hash   VARCHAR│
│ plan            ENUM   │     ││ first_name      VARCHAR│
│ settings        JSONB  │     ││ last_name       VARCHAR│
│ created_at      TIMESTAMP    ││ avatar_url      VARCHAR│
│ updated_at      TIMESTAMP    ││ status          ENUM   │
└────────────────────────┘     ││ email_verified  BOOLEAN│
         │                     ││ mfa_enabled     BOOLEAN│
         │                     ││ mfa_secret      VARCHAR│
         ▼                     ││ last_login_at   TIMESTAMP
┌────────────────────────┐     ││ created_at      TIMESTAMP
│   organization_members │     ││ updated_at      TIMESTAMP
├────────────────────────┤     │└────────────────────────┘
│ id              UUID PK│     │
│ org_id          UUID FK│─────┘         │
│ user_id         UUID FK│───────────────┘
│ role            ENUM   │
│ invited_by      UUID FK│
│ joined_at       TIMESTAMP
└────────────────────────┘

┌────────────────────────┐      ┌────────────────────────┐
│         teams          │      │     team_members       │
├────────────────────────┤      ├────────────────────────┤
│ id              UUID PK│      │ id              UUID PK│
│ org_id          UUID FK│◄─────│ team_id         UUID FK│
│ name            VARCHAR│      │ user_id         UUID FK│
│ description     TEXT   │      │ role            ENUM   │
│ created_at      TIMESTAMP     │ added_at        TIMESTAMP
│ updated_at      TIMESTAMP     └────────────────────────┘
└────────────────────────┘

┌────────────────────────┐      ┌────────────────────────┐
│    nats_clusters       │      │   cluster_connections  │
├────────────────────────┤      ├────────────────────────┤
│ id              UUID PK│      │ id              UUID PK│
│ org_id          UUID FK│◄─────│ cluster_id      UUID FK│
│ name            VARCHAR│      │ server_url      VARCHAR│
│ description     TEXT   │      │ credentials     JSONB  │ (encrypted)
│ environment     ENUM   │      │ tls_config      JSONB  │
│ status          ENUM   │      │ is_primary      BOOLEAN│
│ version         VARCHAR│      │ health_status   ENUM   │
│ created_at      TIMESTAMP     │ last_health_check TIMESTAMP
│ updated_at      TIMESTAMP     └────────────────────────┘
└────────────────────────┘

┌────────────────────────┐      ┌────────────────────────┐
│   stream_configs       │      │  consumer_configs      │
├────────────────────────┤      ├────────────────────────┤
│ id              UUID PK│      │ id              UUID PK│
│ cluster_id      UUID FK│◄─────│ stream_config_id UUID FK│
│ stream_name     VARCHAR│      │ consumer_name   VARCHAR│
│ config_snapshot JSONB  │      │ config_snapshot JSONB  │
│ created_by      UUID FK│      │ created_by      UUID FK│
│ is_managed      BOOLEAN│      │ is_managed      BOOLEAN│
│ tags            JSONB  │      │ tags            JSONB  │
│ created_at      TIMESTAMP     │ created_at      TIMESTAMP
│ updated_at      TIMESTAMP     │ updated_at      TIMESTAMP
└────────────────────────┘      └────────────────────────┘

┌────────────────────────┐      ┌────────────────────────┐
│        roles           │      │     permissions        │
├────────────────────────┤      ├────────────────────────┤
│ id              UUID PK│      │ id              UUID PK│
│ org_id          UUID FK│◄─────│ role_id         UUID FK│
│ name            VARCHAR│      │ resource        VARCHAR│
│ description     TEXT   │      │ action          VARCHAR│
│ is_system       BOOLEAN│      │ conditions      JSONB  │
│ created_at      TIMESTAMP     └────────────────────────┘
│ updated_at      TIMESTAMP
└────────────────────────┘

┌────────────────────────┐      ┌────────────────────────┐
│     api_keys           │      │      sessions          │
├────────────────────────┤      ├────────────────────────┤
│ id              UUID PK│      │ id              UUID PK│
│ org_id          UUID FK│      │ user_id         UUID FK│
│ user_id         UUID FK│      │ token_hash      VARCHAR│
│ name            VARCHAR│      │ ip_address      INET   │
│ key_hash        VARCHAR│      │ user_agent      TEXT   │
│ prefix          VARCHAR│      │ expires_at      TIMESTAMP
│ permissions     JSONB  │      │ created_at      TIMESTAMP
│ last_used_at    TIMESTAMP     └────────────────────────┘
│ expires_at      TIMESTAMP
│ created_at      TIMESTAMP
└────────────────────────┘

┌────────────────────────┐      ┌────────────────────────┐
│    saved_queries       │      │      dashboards        │
├────────────────────────┤      ├────────────────────────┤
│ id              UUID PK│      │ id              UUID PK│
│ org_id          UUID FK│      │ org_id          UUID FK│
│ user_id         UUID FK│      │ user_id         UUID FK│
│ name            VARCHAR│      │ name            VARCHAR│
│ query           TEXT   │      │ layout          JSONB  │
│ description     TEXT   │      │ widgets         JSONB  │
│ is_shared       BOOLEAN│      │ is_shared       BOOLEAN│
│ created_at      TIMESTAMP     │ created_at      TIMESTAMP
│ updated_at      TIMESTAMP     │ updated_at      TIMESTAMP
└────────────────────────┘      └────────────────────────┘

┌────────────────────────┐
│    alert_rules         │
├────────────────────────┤
│ id              UUID PK│
│ org_id          UUID FK│
│ cluster_id      UUID FK│
│ name            VARCHAR│
│ condition       JSONB  │
│ threshold       JSONB  │
│ severity        ENUM   │
│ channels        JSONB  │
│ is_enabled      BOOLEAN│
│ cooldown_mins   INTEGER│
│ created_at      TIMESTAMP
│ updated_at      TIMESTAMP
└────────────────────────┘

2.2 ClickHouse Schema (Analytics & Time-Series)

┌─────────────────────────────────────────────────────────────────────────────┐
│                         CLICKHOUSE SCHEMA                                    │
│                    (Optimized for Time-Series Analytics)                     │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  TABLE: stream_metrics                                                       │
│  ENGINE: MergeTree()                                                         │
│  PARTITION BY: toYYYYMM(timestamp)                                          │
│  ORDER BY: (cluster_id, stream_name, timestamp)                             │
│  TTL: timestamp + INTERVAL 90 DAY                                           │
├─────────────────────────────────────────────────────────────────────────────┤
│  cluster_id       UUID                                                       │
│  stream_name      String                                                     │
│  timestamp        DateTime64(3)                                              │
│  messages_total   UInt64                                                     │
│  bytes_total      UInt64                                                     │
│  messages_rate    Float64          (msgs/sec)                               │
│  bytes_rate       Float64          (bytes/sec)                              │
│  consumer_count   UInt32                                                     │
│  first_seq        UInt64                                                     │
│  last_seq         UInt64                                                     │
│  subjects         Array(String)                                              │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  TABLE: consumer_metrics                                                     │
│  ENGINE: MergeTree()                                                         │
│  PARTITION BY: toYYYYMM(timestamp)                                          │
│  ORDER BY: (cluster_id, stream_name, consumer_name, timestamp)              │
│  TTL: timestamp + INTERVAL 90 DAY                                           │
├─────────────────────────────────────────────────────────────────────────────┤
│  cluster_id       UUID                                                       │
│  stream_name      String                                                     │
│  consumer_name    String                                                     │
│  timestamp        DateTime64(3)                                              │
│  pending_count    UInt64                                                     │
│  ack_pending      UInt64                                                     │
│  redelivered      UInt64                                                     │
│  waiting          UInt64                                                     │
│  delivered_rate   Float64                                                    │
│  ack_rate         Float64                                                    │
│  lag              Int64                                                      │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  TABLE: cluster_metrics                                                      │
│  ENGINE: MergeTree()                                                         │
│  PARTITION BY: toYYYYMM(timestamp)                                          │
│  ORDER BY: (cluster_id, server_id, timestamp)                               │
│  TTL: timestamp + INTERVAL 180 DAY                                          │
├─────────────────────────────────────────────────────────────────────────────┤
│  cluster_id       UUID                                                       │
│  server_id        String                                                     │
│  server_name      String                                                     │
│  timestamp        DateTime64(3)                                              │
│  cpu_percent      Float32                                                    │
│  memory_bytes     UInt64                                                     │
│  connections      UInt32                                                     │
│  subscriptions    UInt32                                                     │
│  slow_consumers   UInt32                                                     │
│  in_msgs          UInt64                                                     │
│  out_msgs         UInt64                                                     │
│  in_bytes         UInt64                                                     │
│  out_bytes        UInt64                                                     │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  TABLE: message_samples                                                      │
│  ENGINE: MergeTree()                                                         │
│  PARTITION BY: toYYYYMM(timestamp)                                          │
│  ORDER BY: (cluster_id, stream_name, subject, timestamp)                    │
│  TTL: timestamp + INTERVAL 7 DAY                                            │
├─────────────────────────────────────────────────────────────────────────────┤
│  cluster_id       UUID                                                       │
│  stream_name      String                                                     │
│  subject          String                                                     │
│  sequence         UInt64                                                     │
│  timestamp        DateTime64(3)                                              │
│  headers          Map(String, String)                                        │
│  payload_preview  String               (first 1KB, truncated)               │
│  payload_size     UInt32                                                     │
│  payload_type     String               (json, protobuf, avro, binary)       │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  TABLE: audit_logs                                                           │
│  ENGINE: MergeTree()                                                         │
│  PARTITION BY: toYYYYMM(timestamp)                                          │
│  ORDER BY: (org_id, timestamp, action)                                      │
│  TTL: timestamp + INTERVAL 365 DAY                                          │
├─────────────────────────────────────────────────────────────────────────────┤
│  id               UUID                                                       │
│  org_id           UUID                                                       │
│  user_id          UUID                                                       │
│  user_email       String                                                     │
│  timestamp        DateTime64(3)                                              │
│  action           String               (stream.create, consumer.delete, etc)│
│  resource_type    String                                                     │
│  resource_id      String                                                     │
│  resource_name    String                                                     │
│  cluster_id       Nullable(UUID)                                             │
│  ip_address       IPv6                                                       │
│  user_agent       String                                                     │
│  request_id       String                                                     │
│  changes          String               (JSON diff)                          │
│  status           Enum('success', 'failure', 'denied')                      │
│  error_message    Nullable(String)                                           │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  TABLE: alert_events                                                         │
│  ENGINE: MergeTree()                                                         │
│  PARTITION BY: toYYYYMM(timestamp)                                          │
│  ORDER BY: (org_id, alert_rule_id, timestamp)                               │
│  TTL: timestamp + INTERVAL 90 DAY                                           │
├─────────────────────────────────────────────────────────────────────────────┤
│  id               UUID                                                       │
│  org_id           UUID                                                       │
│  alert_rule_id    UUID                                                       │
│  cluster_id       UUID                                                       │
│  timestamp        DateTime64(3)                                              │
│  severity         Enum('info', 'warning', 'critical')                       │
│  status           Enum('firing', 'resolved')                                │
│  metric_value     Float64                                                    │
│  threshold_value  Float64                                                    │
│  message          String                                                     │
│  notified_at      Nullable(DateTime64(3))                                    │
│  resolved_at      Nullable(DateTime64(3))                                    │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  MATERIALIZED VIEW: stream_metrics_hourly                                    │
│  ENGINE: SummingMergeTree()                                                  │
│  PARTITION BY: toYYYYMM(hour)                                               │
│  ORDER BY: (cluster_id, stream_name, hour)                                  │
├─────────────────────────────────────────────────────────────────────────────┤
│  cluster_id       UUID                                                       │
│  stream_name      String                                                     │
│  hour             DateTime                                                   │
│  messages_sum     UInt64                                                     │
│  bytes_sum        UInt64                                                     │
│  avg_rate         AggregateFunction(avg, Float64)                           │
│  max_rate         AggregateFunction(max, Float64)                           │
│  sample_count     UInt64                                                     │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  MATERIALIZED VIEW: stream_metrics_daily                                     │
│  ENGINE: SummingMergeTree()                                                  │
│  PARTITION BY: toYYYYMM(day)                                                │
│  ORDER BY: (cluster_id, stream_name, day)                                   │
├─────────────────────────────────────────────────────────────────────────────┤
│  cluster_id       UUID                                                       │
│  stream_name      String                                                     │
│  day              Date                                                       │
│  messages_sum     UInt64                                                     │
│  bytes_sum        UInt64                                                     │
│  avg_rate         AggregateFunction(avg, Float64)                           │
│  max_rate         AggregateFunction(max, Float64)                           │
│  sample_count     UInt64                                                     │
└─────────────────────────────────────────────────────────────────────────────┘

2.3 Redis Data Structures

┌─────────────────────────────────────────────────────────────────────────────┐
│                           REDIS DATA STRUCTURES                              │
└─────────────────────────────────────────────────────────────────────────────┘

SESSION MANAGEMENT
──────────────────
Key Pattern: session:{session_id}
Type: Hash
TTL: 24 hours (configurable)
Fields:
  - user_id
  - org_id
  - email
  - roles (JSON array)
  - permissions (JSON array)
  - ip_address
  - created_at
  - last_activity

RATE LIMITING
─────────────
Key Pattern: ratelimit:{user_id}:{endpoint}
Type: String (counter)
TTL: 60 seconds (sliding window)

API KEY CACHE
─────────────
Key Pattern: apikey:{key_prefix}
Type: Hash
TTL: 5 minutes
Fields:
  - org_id
  - user_id
  - permissions (JSON)
  - rate_limit

CLUSTER STATUS CACHE
────────────────────
Key Pattern: cluster:{cluster_id}:status
Type: Hash
TTL: 30 seconds
Fields:
  - status (connected/disconnected/degraded)
  - server_count
  - version
  - last_check

STREAM LIST CACHE
─────────────────
Key Pattern: cluster:{cluster_id}:streams
Type: String (JSON array)
TTL: 60 seconds

REAL-TIME METRICS (Pub/Sub)
───────────────────────────
Channel: metrics:{cluster_id}:{stream_name}
Message: JSON payload with current metrics

USER PERMISSIONS CACHE
──────────────────────
Key Pattern: permissions:{user_id}:{org_id}
Type: Set
TTL: 5 minutes
Members: permission strings (e.g., "streams:read", "consumers:write")

ACTIVE USERS TRACKING
─────────────────────
Key Pattern: active_users:{org_id}
Type: Sorted Set
Score: Unix timestamp of last activity
Member: user_id

NOTIFICATION QUEUE
──────────────────
Key Pattern: notifications:{user_id}
Type: List
Elements: JSON notification objects

3. API Design

3.1 REST API Structure

┌─────────────────────────────────────────────────────────────────────────────┐
│                            API ENDPOINTS                                     │
│                          Base: /api/v1                                       │
└─────────────────────────────────────────────────────────────────────────────┘

AUTHENTICATION
──────────────
POST   /auth/login                    Email/password login
POST   /auth/logout                   Invalidate session
POST   /auth/refresh                  Refresh access token
POST   /auth/register                 User registration
POST   /auth/forgot-password          Request password reset
POST   /auth/reset-password           Complete password reset
POST   /auth/verify-email             Verify email address
GET    /auth/me                       Get current user
POST   /auth/mfa/enable               Enable MFA
POST   /auth/mfa/verify               Verify MFA code
DELETE /auth/mfa/disable              Disable MFA

OAUTH/SSO
─────────
GET    /auth/oauth/{provider}         Initiate OAuth flow (google, github, okta)
GET    /auth/oauth/{provider}/callback OAuth callback
POST   /auth/saml/login               SAML login initiation
POST   /auth/saml/acs                 SAML assertion consumer service

USERS
─────
GET    /users                         List users (org scoped)
GET    /users/{id}                    Get user details
PATCH  /users/{id}                    Update user
DELETE /users/{id}                    Delete/deactivate user
POST   /users/invite                  Invite user to org
GET    /users/{id}/activity           Get user activity log

ORGANIZATIONS
─────────────
GET    /organizations                 List user's organizations
POST   /organizations                 Create organization
GET    /organizations/{id}            Get organization details
PATCH  /organizations/{id}            Update organization
DELETE /organizations/{id}            Delete organization
GET    /organizations/{id}/members    List members
POST   /organizations/{id}/members    Add member
DELETE /organizations/{id}/members/{uid} Remove member

TEAMS
─────
GET    /teams                         List teams
POST   /teams                         Create team
GET    /teams/{id}                    Get team
PATCH  /teams/{id}                    Update team
DELETE /teams/{id}                    Delete team
GET    /teams/{id}/members            List team members
POST   /teams/{id}/members            Add team member
DELETE /teams/{id}/members/{uid}      Remove team member

CLUSTERS
────────
GET    /clusters                      List NATS clusters
POST   /clusters                      Add cluster connection
GET    /clusters/{id}                 Get cluster details
PATCH  /clusters/{id}                 Update cluster config
DELETE /clusters/{id}                 Remove cluster
GET    /clusters/{id}/health          Health check
GET    /clusters/{id}/servers         List servers in cluster
GET    /clusters/{id}/info            Detailed cluster info

STREAMS
───────
GET    /clusters/{cid}/streams                    List streams
POST   /clusters/{cid}/streams                    Create stream
GET    /clusters/{cid}/streams/{name}             Get stream details
PATCH  /clusters/{cid}/streams/{name}             Update stream config
DELETE /clusters/{cid}/streams/{name}             Delete stream
GET    /clusters/{cid}/streams/{name}/info        Stream info/stats
POST   /clusters/{cid}/streams/{name}/purge       Purge messages
GET    /clusters/{cid}/streams/{name}/messages    Browse messages
POST   /clusters/{cid}/streams/{name}/messages    Publish message
DELETE /clusters/{cid}/streams/{name}/messages/{seq} Delete message

CONSUMERS
─────────
GET    /clusters/{cid}/streams/{sid}/consumers              List consumers
POST   /clusters/{cid}/streams/{sid}/consumers              Create consumer
GET    /clusters/{cid}/streams/{sid}/consumers/{name}       Get consumer
PATCH  /clusters/{cid}/streams/{sid}/consumers/{name}       Update consumer
DELETE /clusters/{cid}/streams/{sid}/consumers/{name}       Delete consumer
GET    /clusters/{cid}/streams/{sid}/consumers/{name}/info  Consumer stats
POST   /clusters/{cid}/streams/{sid}/consumers/{name}/pause Pause consumer

KV STORES
─────────
GET    /clusters/{cid}/kv                         List KV buckets
POST   /clusters/{cid}/kv                         Create KV bucket
GET    /clusters/{cid}/kv/{bucket}                Get bucket info
DELETE /clusters/{cid}/kv/{bucket}                Delete bucket
GET    /clusters/{cid}/kv/{bucket}/keys           List keys
GET    /clusters/{cid}/kv/{bucket}/keys/{key}     Get value
PUT    /clusters/{cid}/kv/{bucket}/keys/{key}     Set value
DELETE /clusters/{cid}/kv/{bucket}/keys/{key}     Delete key
GET    /clusters/{cid}/kv/{bucket}/keys/{key}/history  Key history

OBJECT STORES
─────────────
GET    /clusters/{cid}/objects                    List object stores
POST   /clusters/{cid}/objects                    Create object store
GET    /clusters/{cid}/objects/{store}            Get store info
DELETE /clusters/{cid}/objects/{store}            Delete store
GET    /clusters/{cid}/objects/{store}/files      List files
GET    /clusters/{cid}/objects/{store}/files/{name}   Download file
PUT    /clusters/{cid}/objects/{store}/files/{name}   Upload file
DELETE /clusters/{cid}/objects/{store}/files/{name}   Delete file

ANALYTICS
─────────
GET    /analytics/metrics                         Query metrics
GET    /analytics/streams/{name}/throughput       Stream throughput
GET    /analytics/streams/{name}/latency          Consumer latency
GET    /analytics/consumers/{name}/lag            Consumer lag
GET    /analytics/cluster/overview                Cluster overview stats
POST   /analytics/query                           Custom ClickHouse query

DASHBOARDS
──────────
GET    /dashboards                    List dashboards
POST   /dashboards                    Create dashboard
GET    /dashboards/{id}               Get dashboard
PATCH  /dashboards/{id}               Update dashboard
DELETE /dashboards/{id}               Delete dashboard
POST   /dashboards/{id}/clone         Clone dashboard

ALERTS
──────
GET    /alerts/rules                  List alert rules
POST   /alerts/rules                  Create alert rule
GET    /alerts/rules/{id}             Get alert rule
PATCH  /alerts/rules/{id}             Update alert rule
DELETE /alerts/rules/{id}             Delete alert rule
GET    /alerts/events                 List alert events
POST   /alerts/test                   Test alert rule

AUDIT
─────
GET    /audit/logs                    Query audit logs
GET    /audit/logs/export             Export audit logs (CSV/JSON)

API KEYS
────────
GET    /api-keys                      List API keys
POST   /api-keys                      Create API key
GET    /api-keys/{id}                 Get API key details
DELETE /api-keys/{id}                 Revoke API key
POST   /api-keys/{id}/rotate          Rotate API key

ROLES & PERMISSIONS
───────────────────
GET    /roles                         List roles
POST   /roles                         Create custom role
GET    /roles/{id}                    Get role
PATCH  /roles/{id}                    Update role
DELETE /roles/{id}                    Delete role
GET    /permissions                   List all permissions

3.2 WebSocket API

┌─────────────────────────────────────────────────────────────────────────────┐
│                          WEBSOCKET CHANNELS                                  │
│                       Endpoint: /ws/v1/realtime                              │
└─────────────────────────────────────────────────────────────────────────────┘

CONNECTION
──────────
{
  "type": "auth",
  "token": "jwt_token_here"
}

SUBSCRIBE TO CHANNELS
─────────────────────
{
  "type": "subscribe",
  "channels": [
    "cluster:{cluster_id}:status",
    "stream:{cluster_id}:{stream_name}:metrics",
    "consumer:{cluster_id}:{stream_name}:{consumer_name}:metrics",
    "alerts:{org_id}"
  ]
}

UNSUBSCRIBE
───────────
{
  "type": "unsubscribe",
  "channels": ["stream:{cluster_id}:{stream_name}:metrics"]
}

MESSAGE TYPES (Server → Client)
───────────────────────────────

// Cluster Status Update
{
  "type": "cluster_status",
  "cluster_id": "uuid",
  "data": {
    "status": "connected",
    "servers": [...],
    "timestamp": "2024-01-15T10:30:00Z"
  }
}

// Stream Metrics
{
  "type": "stream_metrics",
  "cluster_id": "uuid",
  "stream_name": "ORDERS",
  "data": {
    "messages": 1523456,
    "bytes": 234567890,
    "rate": 1250.5,
    "consumers": 5,
    "timestamp": "2024-01-15T10:30:00Z"
  }
}

// Consumer Metrics
{
  "type": "consumer_metrics",
  "cluster_id": "uuid",
  "stream_name": "ORDERS",
  "consumer_name": "processor",
  "data": {
    "pending": 150,
    "lag": 2500,
    "ack_rate": 980.2,
    "timestamp": "2024-01-15T10:30:00Z"
  }
}

// Alert Notification
{
  "type": "alert",
  "data": {
    "id": "uuid",
    "rule_id": "uuid",
    "severity": "critical",
    "message": "Consumer lag exceeded threshold",
    "timestamp": "2024-01-15T10:30:00Z"
  }
}

// Message Preview (for message browser)
{
  "type": "new_message",
  "cluster_id": "uuid",
  "stream_name": "ORDERS",
  "data": {
    "sequence": 1523456,
    "subject": "orders.created",
    "timestamp": "2024-01-15T10:30:00Z",
    "preview": "..."
  }
}

4. UI/UX Design

4.1 Application Layout

┌─────────────────────────────────────────────────────────────────────────────┐
│  ┌─────┐  NATS Console        [Search...]          [?] [@] [Bell] [Avatar▼]│
│  │Logo │  Acme Corp ▼                                                       │
├──┴─────┴────────────────────────────────────────────────────────────────────┤
│  │                                                                          │
│  │  [🏠] Overview                                                           │
│  │                                                                          │
│  │  [📊] Clusters                     ┌────────────────────────────────────┐│
│  │      └─ Production                 │                                    ││
│  │      └─ Staging                    │         MAIN CONTENT AREA          ││
│  │      └─ Development                │                                    ││
│  │                                    │    (Dynamic based on selection)    ││
│  │  [📦] Streams                      │                                    ││
│  │                                    │                                    ││
│  │  [👥] Consumers                    │                                    ││
│  │                                    │                                    ││
│  │  [🔑] KV Stores                    │                                    ││
│  │                                    │                                    ││
│  │  [📁] Object Stores                │                                    ││
│  │                                    │                                    ││
│  │  [📈] Analytics                    │                                    ││
│  │      └─ Dashboards                 │                                    ││
│  │      └─ Metrics                    │                                    ││
│  │                                    │                                    ││
│  │  [🔔] Alerts                       │                                    ││
│  │                                    │                                    ││
│  │  ─────────────                     │                                    ││
│  │                                    │                                    ││
│  │  [⚙️] Settings                     │                                    ││
│  │      └─ Organization               │                                    ││
│  │      └─ Users & Teams              │                                    ││
│  │      └─ API Keys                   │                                    ││
│  │      └─ Audit Logs                 │                                    ││
│  │                                    └────────────────────────────────────┘│
│  │                                                                          │
└──┴──────────────────────────────────────────────────────────────────────────┘

4.2 Key Screen Designs

Dashboard / Overview

┌─────────────────────────────────────────────────────────────────────────────┐
│  Overview                                              [Last 24h ▼] [↻]     │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐    │
│  │  3 Clusters  │  │  24 Streams  │  │ 89 Consumers │  │  2 Alerts    │    │
│  │  ● 3 Healthy │  │  ↑ 2.1M/sec  │  │  ↑ 1.8M/sec  │  │  ⚠ 2 Warning │    │
│  └──────────────┘  └──────────────┘  └──────────────┘  └──────────────┘    │
│                                                                             │
│  ┌───────────────────────────────────────────────────────────────────────┐ │
│  │  Message Throughput                                                    │ │
│  │                                                                        │ │
│  │  2.5M ┤                                    ╭─────╮                     │ │
│  │       │                              ╭─────╯     │                     │ │
│  │  2.0M ┤                        ╭─────╯           │                     │ │
│  │       │                  ╭─────╯                 ╰─────╮               │ │
│  │  1.5M ┤            ╭─────╯                             ╰─────╮         │ │
│  │       │      ╭─────╯                                         ╰───     │ │
│  │  1.0M ┼──────╯                                                         │ │
│  │       └────────────────────────────────────────────────────────────── │ │
│  │         00:00    04:00    08:00    12:00    16:00    20:00    Now     │ │
│  └───────────────────────────────────────────────────────────────────────┘ │
│                                                                             │
│  ┌─────────────────────────────────┐  ┌─────────────────────────────────┐  │
│  │  Top Streams by Volume          │  │  Consumer Lag                    │  │
│  │  ─────────────────────────────  │  │  ─────────────────────────────   │  │
│  │  ORDERS          ████████ 45%   │  │  order-processor    ⚠ 12,500    │  │
│  │  EVENTS          █████░░░ 28%   │  │  notification-svc   ● 234       │  │
│  │  NOTIFICATIONS   ███░░░░░ 15%   │  │  analytics-worker   ● 45        │  │
│  │  AUDIT           ██░░░░░░ 8%    │  │  audit-logger       ● 12        │  │
│  │  Other           █░░░░░░░ 4%    │  │  backup-sync        ● 0         │  │
│  └─────────────────────────────────┘  └─────────────────────────────────┘  │
│                                                                             │
│  Recent Activity                                                            │
│  ───────────────────────────────────────────────────────────────────────   │
│  ● 10:45  Stream ORDERS config updated by john@acme.com                    │
│  ● 10:32  Consumer order-processor created by jane@acme.com                │
│  ⚠ 10:15  Alert: Consumer lag threshold exceeded on order-processor        │
│  ● 09:58  New cluster connection added: production-east                    │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Streams List

┌─────────────────────────────────────────────────────────────────────────────┐
│  Streams                                      [+ Create Stream]             │
│  Production Cluster                                                         │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  [Search streams...]                    Filters: [All ▼] [Tags ▼]          │
│                                                                             │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │ □  Name          │ Subjects     │ Messages   │ Storage │ Consumers │ ⋮ ││
│  ├───────────────────────────────────────────────────────────────────────┤│
│  │ □  ORDERS        │ orders.>     │ 15.2M      │ 2.3 GB  │ 5         │ ⋮ ││
│  │    ● Healthy     │              │ ↑ 1,250/s  │         │           │   ││
│  ├───────────────────────────────────────────────────────────────────────┤│
│  │ □  EVENTS        │ events.>     │ 89.5M      │ 12.1 GB │ 12        │ ⋮ ││
│  │    ● Healthy     │              │ ↑ 3,420/s  │         │           │   ││
│  ├───────────────────────────────────────────────────────────────────────┤│
│  │ □  NOTIFICATIONS │ notify.*     │ 5.8M       │ 890 MB  │ 3         │ ⋮ ││
│  │    ● Healthy     │              │ ↑ 520/s    │         │           │   ││
│  ├───────────────────────────────────────────────────────────────────────┤│
│  │ □  AUDIT         │ audit.>      │ 234.2M     │ 45.2 GB │ 2         │ ⋮ ││
│  │    ⚠ High Volume │              │ ↑ 8,100/s  │         │           │   ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                             │
│  Showing 4 of 24 streams                           [◀ 1 2 3 4 5 ▶]         │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Stream Detail

┌─────────────────────────────────────────────────────────────────────────────┐
│  ← Streams / ORDERS                      [Edit] [Purge] [Delete] [⋮]        │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  [Overview]  [Messages]  [Consumers]  [Configuration]  [Metrics]            │
│  ──────────────────────────────────────────────────────────────────────     │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐  │
│  │  Stream Health                                        ● Healthy       │  │
│  │                                                                       │  │
│  │  ┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐      │  │
│  │  │ Messages   │  │ Storage    │  │ Consumers  │  │ Throughput │      │  │
│  │  │ 15,234,567 │  │ 2.34 GB    │  │ 5 active   │  │ 1,250/sec  │      │  │
│  │  │ ↑ 12.5%    │  │ ↑ 234 MB   │  │            │  │ ↑ 8.2%     │      │  │
│  │  └────────────┘  └────────────┘  └────────────┘  └────────────┘      │  │
│  └──────────────────────────────────────────────────────────────────────┘  │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐  │
│  │  Message Rate (Last 6 hours)                              [Export]    │  │
│  │                                                                       │  │
│  │  1.5K ┤          ╭────╮                      ╭────────╮               │  │
│  │       │     ╭────╯    ╰──────╮         ╭────╯        ╰───╮           │  │
│  │  1.0K ┼─────╯                 ╰─────────╯                 ╰────       │  │
│  │       │                                                               │  │
│  │  500  ┤                                                               │  │
│  │       └──────────────────────────────────────────────────────────    │  │
│  │        06:00     08:00     10:00     12:00     14:00     Now         │  │
│  └──────────────────────────────────────────────────────────────────────┘  │
│                                                                             │
│  Configuration Summary                                                      │
│  ───────────────────────────────────────────────────────────────────────   │
│  Subjects        orders.>                                                   │
│  Retention       Limits (Max Messages: 10M, Max Bytes: 10GB)               │
│  Storage         File                                                       │
│  Replicas        3                                                          │
│  Discard         Old                                                        │
│  Max Age         7 days                                                     │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Message Browser

┌─────────────────────────────────────────────────────────────────────────────┐
│  ← ORDERS / Messages                                     [Publish Message]  │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  Subject Filter: [orders.>              ]  From: [Sequence ▼] [_________]  │
│  [🔴 Live]  [Parse as: JSON ▼]                                             │
│                                                                             │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │ Seq       │ Subject         │ Time           │ Size   │ Headers │      ││
│  ├───────────────────────────────────────────────────────────────────────┤│
│  │ 15234567  │ orders.created  │ 10:45:23.456   │ 1.2 KB │ 3       │  ▶   ││
│  │ 15234566  │ orders.updated  │ 10:45:23.234   │ 890 B  │ 2       │  ▶   ││
│  │ 15234565  │ orders.created  │ 10:45:22.987   │ 1.1 KB │ 3       │  ▶   ││
│  │ 15234564  │ orders.shipped  │ 10:45:22.654   │ 2.3 KB │ 4       │  ▶   ││
│  │ 15234563  │ orders.created  │ 10:45:22.123   │ 1.2 KB │ 3       │  ▶   ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                             │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Message #15234567                                       [Copy] [Delete]││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Subject: orders.created                                                ││
│  │  Time: 2024-01-15T10:45:23.456Z                                         ││
│  │  Sequence: 15234567                                                     ││
│  │                                                                         ││
│  │  Headers:                                                               ││
│  │  ┌─────────────────────────────────────────────────────────────────┐   ││
│  │  │ Content-Type: application/json                                   │   ││
│  │  │ X-Correlation-ID: abc-123-def                                    │   ││
│  │  │ X-Source: order-service                                          │   ││
│  │  └─────────────────────────────────────────────────────────────────┘   ││
│  │                                                                         ││
│  │  Payload:                                                               ││
│  │  ┌─────────────────────────────────────────────────────────────────┐   ││
│  │  │ {                                                                │   ││
│  │  │   "order_id": "ORD-2024-78945",                                  │   ││
│  │  │   "customer_id": "CUST-12345",                                   │   ││
│  │  │   "items": [                                                     │   ││
│  │  │     { "sku": "PROD-001", "qty": 2, "price": 29.99 },            │   ││
│  │  │     { "sku": "PROD-042", "qty": 1, "price": 149.99 }            │   ││
│  │  │   ],                                                             │   ││
│  │  │   "total": 209.97,                                               │   ││
│  │  │   "created_at": "2024-01-15T10:45:23.456Z"                       │   ││
│  │  │ }                                                                │   ││
│  │  └─────────────────────────────────────────────────────────────────┘   ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

Consumer Detail

┌─────────────────────────────────────────────────────────────────────────────┐
│  ← ORDERS / Consumers / order-processor             [Edit] [Pause] [Delete]│
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  [Overview]  [Pending Messages]  [Configuration]  [Metrics]                 │
│  ──────────────────────────────────────────────────────────────────────     │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐  │
│  │  Consumer Health                                      ● Active        │  │
│  │                                                                       │  │
│  │  ┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐      │  │
│  │  │ Pending    │  │ Ack Pending│  │ Lag        │  │ Redeliver  │      │  │
│  │  │ 1,234      │  │ 45         │  │ 12,500     │  │ 23         │      │  │
│  │  │ ● Normal   │  │ ● Normal   │  │ ⚠ Warning  │  │ ● Normal   │      │  │
│  │  └────────────┘  └────────────┘  └────────────┘  └────────────┘      │  │
│  └──────────────────────────────────────────────────────────────────────┘  │
│                                                                             │
│  ┌─────────────────────────────────┐  ┌─────────────────────────────────┐  │
│  │  Processing Rate                 │  │  Consumer Lag                    │  │
│  │                                  │  │                                  │  │
│  │  1.2K ┤    ╭───╮       ╭────    │  │  15K ┤╭─╮                        │  │
│  │       │╭───╯   ╰───╮╭──╯        │  │      ││ ╰╮                       │  │
│  │  800  ┼╯           ╰╯           │  │  10K ┼╯  ╰╮                      │  │
│  │       │                         │  │      │    ╰──╮                   │  │
│  │  400  ┤                         │  │  5K  ┤       ╰────────────       │  │
│  │       └─────────────────────── │  │      └────────────────────────   │  │
│  │        -6h    -4h    -2h   Now  │  │       -6h    -4h    -2h    Now   │  │
│  └─────────────────────────────────┘  └─────────────────────────────────┘  │
│                                                                             │
│  Configuration                                                              │
│  ───────────────────────────────────────────────────────────────────────   │
│  Durable Name      order-processor                                          │
│  Deliver Policy    All                                                      │
│  Ack Policy        Explicit                                                 │
│  Ack Wait          30s                                                      │
│  Max Deliver       5                                                        │
│  Filter Subject    orders.>                                                 │
│  Max Ack Pending   1000                                                     │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

User Management

┌─────────────────────────────────────────────────────────────────────────────┐
│  Settings / Users & Teams                                 [+ Invite User]  │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  [Users]  [Teams]  [Roles]                                                  │
│  ──────────────────────────────────────────────────────────────────────     │
│                                                                             │
│  [Search users...]                                                          │
│                                                                             │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │     │ User              │ Email                │ Role     │ Status │ ⋮ ││
│  ├───────────────────────────────────────────────────────────────────────┤│
│  │ [A] │ John Smith        │ john@acme.com        │ Admin    │ Active │ ⋮ ││
│  │     │ Last login: 2 hrs ago                                         │   ││
│  ├───────────────────────────────────────────────────────────────────────┤│
│  │ [J] │ Jane Doe          │ jane@acme.com        │ Editor   │ Active │ ⋮ ││
│  │     │ Last login: 1 day ago                                         │   ││
│  ├───────────────────────────────────────────────────────────────────────┤│
│  │ [B] │ Bob Wilson        │ bob@acme.com         │ Viewer   │ Active │ ⋮ ││
│  │     │ Last login: 3 days ago                                        │   ││
│  ├───────────────────────────────────────────────────────────────────────┤│
│  │ [?] │ alice@acme.com    │ alice@acme.com       │ Editor   │ Pending│ ⋮ ││
│  │     │ Invitation sent: 2 hrs ago                                    │   ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                             │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Role Permissions Matrix                                   [+ New Role] ││
│  │  ───────────────────────────────────────────────────────────────────── ││
│  │                        │ Admin │ Editor │ Viewer │ Operator │          ││
│  │  ──────────────────────┼───────┼────────┼────────┼──────────┤          ││
│  │  Streams: View         │   ●   │   ●    │   ●    │    ●     │          ││
│  │  Streams: Create       │   ●   │   ●    │   ○    │    ○     │          ││
│  │  Streams: Edit         │   ●   │   ●    │   ○    │    ○     │          ││
│  │  Streams: Delete       │   ●   │   ○    │   ○    │    ○     │          ││
│  │  Messages: Browse      │   ●   │   ●    │   ●    │    ●     │          ││
│  │  Messages: Publish     │   ●   │   ●    │   ○    │    ●     │          ││
│  │  Consumers: Manage     │   ●   │   ●    │   ○    │    ●     │          ││
│  │  Users: Manage         │   ●   │   ○    │   ○    │    ○     │          ││
│  │  Settings: Access      │   ●   │   ○    │   ○    │    ○     │          ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

5. Authentication & Authorization

5.1 Authentication Flows

┌─────────────────────────────────────────────────────────────────────────────┐
│                      AUTHENTICATION ARCHITECTURE                             │
└─────────────────────────────────────────────────────────────────────────────┘

EMAIL/PASSWORD FLOW
───────────────────
┌──────────┐     1. Login Request      ┌──────────────┐
│          │ ──────────────────────►   │              │
│  Client  │                           │  Auth        │
│          │ ◄──────────────────────   │  Service     │
└──────────┘  2. JWT + Refresh Token   └──────────────┘
      │                                        │
      │  3. API Request + JWT                  │ Verify credentials
      ▼                                        ▼
┌──────────────┐                        ┌──────────────┐
│  API Gateway │ ─────────────────────► │  PostgreSQL  │
│  (Validate)  │                        │  (Users)     │
└──────────────┘                        └──────────────┘

OAUTH/OIDC FLOW
───────────────
┌──────────┐  1. Initiate   ┌──────────────┐  2. Redirect  ┌──────────────┐
│  Client  │ ─────────────► │  Auth        │ ────────────► │  OAuth       │
│          │                │  Service     │               │  Provider    │
│          │ ◄───────────── │              │ ◄──────────── │  (Google,    │
└──────────┘  5. JWT Token  └──────────────┘  4. Auth Code │  GitHub,etc) │
                                   │                       └──────────────┘
                                   │ 3. Exchange code
                                   ▼
                            ┌──────────────┐
                            │  Create/Link │
                            │  User Account│
                            └──────────────┘

MFA FLOW
────────
┌──────────┐  1. Login      ┌──────────────┐
│          │ ─────────────► │              │
│  Client  │                │  Auth        │
│          │ ◄───────────── │  Service     │
│          │  2. MFA Required│             │
│          │                 │             │
│          │ ─────────────► │             │
│          │  3. TOTP Code  │             │
│          │ ◄───────────── │             │
└──────────┘  4. JWT Token  └──────────────┘

TOKEN STRUCTURE
───────────────
Access Token (JWT, 15 min expiry):
{
  "sub": "user_uuid",
  "org": "org_uuid",
  "email": "user@example.com",
  "roles": ["admin"],
  "permissions": ["streams:*", "consumers:*"],
  "iat": 1705312800,
  "exp": 1705313700
}

Refresh Token (Opaque, 7 day expiry):
- Stored in Redis with user metadata
- Single use, rotated on each refresh
- Tied to device/session

5.2 Authorization Model (RBAC)

┌─────────────────────────────────────────────────────────────────────────────┐
│                         RBAC PERMISSION MODEL                                │
└─────────────────────────────────────────────────────────────────────────────┘

PERMISSION STRUCTURE
────────────────────
Format: {resource}:{action}:{scope}

Resources:
- clusters
- streams
- consumers
- kv_stores
- object_stores
- messages
- users
- teams
- roles
- api_keys
- alerts
- dashboards
- audit_logs

Actions:
- read
- create
- update
- delete
- publish (messages)
- purge (streams)
- pause (consumers)
- manage (full control)

Scopes:
- * (all)
- own (user's own resources)
- team:{team_id} (team resources)
- cluster:{cluster_id} (specific cluster)

BUILT-IN ROLES
──────────────
┌─────────────────────────────────────────────────────────────────────────────┐
│  Role: Admin                                                                 │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Permissions: *:*:*  (Full access to everything)                            │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  Role: Editor                                                                │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Permissions:                                                                │
│  - clusters:read:*                                                           │
│  - streams:read,create,update:*                                              │
│  - consumers:read,create,update,delete:*                                     │
│  - messages:read,publish:*                                                   │
│  - kv_stores:read,create,update:*                                            │
│  - object_stores:read,create,update:*                                        │
│  - dashboards:*:own                                                          │
│  - alerts:read,create,update:*                                               │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  Role: Viewer                                                                │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Permissions:                                                                │
│  - clusters:read:*                                                           │
│  - streams:read:*                                                            │
│  - consumers:read:*                                                          │
│  - messages:read:*                                                           │
│  - kv_stores:read:*                                                          │
│  - object_stores:read:*                                                      │
│  - dashboards:read:*                                                         │
│  - alerts:read:*                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  Role: Operator                                                              │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Permissions:                                                                │
│  - clusters:read:*                                                           │
│  - streams:read:*                                                            │
│  - consumers:read,pause:*                                                    │
│  - messages:read,publish:*                                                   │
│  - kv_stores:read,update:*                                                   │
│  - object_stores:read:*                                                      │
│  - alerts:read:*                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

AUTHORIZATION CHECK FLOW
────────────────────────
┌──────────┐     Request      ┌──────────────┐     Check     ┌──────────────┐
│          │ ───────────────► │              │ ────────────► │              │
│  Client  │                  │  API Gateway │               │  Permission  │
│          │                  │              │ ◄──────────── │  Service     │
│          │ ◄─────────────── │              │    Allow/Deny │              │
└──────────┘   Response       └──────────────┘               └──────────────┘
                                     │                              │
                              Extract JWT                     ┌─────┴─────┐
                              Get permissions                 │           │
                                                              ▼           ▼
                                                        ┌────────┐  ┌────────┐
                                                        │ Redis  │  │ Postgres│
                                                        │ Cache  │  │ (Roles)│
                                                        └────────┘  └────────┘

6. Technology Stack

6.1 Frontend Stack

┌─────────────────────────────────────────────────────────────────────────────┐
│                          FRONTEND TECHNOLOGY STACK                           │
└─────────────────────────────────────────────────────────────────────────────┘

CORE FRAMEWORK
──────────────
Next.js 14+          App Router, Server Components, Server Actions
React 18+            Concurrent features, Suspense
TypeScript 5+        Strict mode enabled

STATE MANAGEMENT
────────────────
Zustand              Global client state
TanStack Query       Server state, caching, mutations
React Hook Form      Form state management
Zod                  Schema validation

UI COMPONENTS
─────────────
shadcn/ui            Base component library
Radix UI             Accessible primitives
Tailwind CSS         Utility-first styling
Lucide Icons         Icon library
Recharts             Charts and graphs
React Table          Data tables
Monaco Editor        Code/JSON editing
cmdk                 Command palette

REAL-TIME
─────────
Socket.io Client     WebSocket connections
React use            Optimistic updates

DEVELOPER EXPERIENCE
────────────────────
ESLint               Linting
Prettier             Code formatting
Vitest               Unit testing
Playwright           E2E testing
Storybook            Component documentation

6.2 Backend Stack

┌─────────────────────────────────────────────────────────────────────────────┐
│                          BACKEND TECHNOLOGY STACK                            │
└─────────────────────────────────────────────────────────────────────────────┘

RUNTIME & FRAMEWORK
───────────────────
Node.js 20 LTS       Runtime
Fastify              HTTP framework (faster than Express)
tRPC                 End-to-end type safety (optional, with REST)
TypeScript 5+        Strict mode

DATABASE CLIENTS
────────────────
Drizzle ORM          PostgreSQL (type-safe, lightweight)
@clickhouse/client   ClickHouse analytics
ioredis              Redis client
nats.js              NATS JetStream client

AUTHENTICATION
──────────────
jose                 JWT handling
passport             OAuth strategies
speakeasy            TOTP/MFA
argon2               Password hashing

BACKGROUND JOBS
───────────────
NATS JetStream       Job queues (internal streams)
node-cron            Scheduled tasks

OBSERVABILITY
─────────────
Pino                 Structured logging
OpenTelemetry        Distributed tracing
Prometheus client    Metrics export

VALIDATION
──────────
Zod                  Schema validation
class-validator      DTO validation (alternative)

TESTING
───────
Vitest               Unit tests
Supertest            API tests
Testcontainers       Integration tests

6.3 Infrastructure

┌─────────────────────────────────────────────────────────────────────────────┐
│                         INFRASTRUCTURE COMPONENTS                            │
└─────────────────────────────────────────────────────────────────────────────┘

DATABASES
─────────
PostgreSQL 16        Primary application database
ClickHouse           Time-series analytics
Redis 7              Caching, sessions, pub/sub

NATS
────
NATS Server          Core messaging
JetStream            Persistence layer

DEPLOYMENT
──────────
Docker               Containerization
Kubernetes           Orchestration (production)
Docker Compose       Local development

REVERSE PROXY
─────────────
Nginx                Load balancing, SSL termination
Caddy                Alternative (auto SSL)

MONITORING
──────────
Prometheus           Metrics collection
Grafana              Dashboards
Jaeger               Distributed tracing

CI/CD
─────
GitHub Actions       Primary CI/CD
ArgoCD               GitOps deployment (K8s)

7. Security Considerations

┌─────────────────────────────────────────────────────────────────────────────┐
│                          SECURITY ARCHITECTURE                               │
└─────────────────────────────────────────────────────────────────────────────┘

AUTHENTICATION SECURITY
───────────────────────
• JWT with short expiry (15 min) + rotating refresh tokens
• Secure HttpOnly cookies for token storage
• MFA support (TOTP, WebAuthn future)
• Rate limiting on auth endpoints
• Account lockout after failed attempts
• Session management with device tracking

DATA SECURITY
─────────────
• Encryption at rest (database level)
• TLS 1.3 for all connections
• Sensitive fields encrypted at application level
• NATS credentials stored encrypted (AES-256-GCM)
• API keys hashed (Argon2) with prefix visible
• Audit logging for all sensitive operations

API SECURITY
────────────
• CORS configuration
• Rate limiting per user/API key
• Request validation (Zod schemas)
• SQL injection prevention (parameterized queries)
• XSS prevention (Content Security Policy)
• CSRF tokens for state-changing operations

INFRASTRUCTURE SECURITY
───────────────────────
• Network segmentation (internal services not exposed)
• Secrets management (Vault/Kubernetes secrets)
• Container security scanning
• Regular dependency updates
• Security headers (HSTS, X-Frame-Options, etc.)

COMPLIANCE READY
────────────────
• Full audit trail in ClickHouse
• Data retention policies
• User consent management
• GDPR-compliant data export/deletion
• SOC 2 Type II alignment

8. Deployment Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│                     PRODUCTION DEPLOYMENT (KUBERNETES)                       │
└─────────────────────────────────────────────────────────────────────────────┘

                              ┌─────────────────┐
                              │   CloudFlare    │
                              │   (CDN + WAF)   │
                              └────────┬────────┘
                                       │
                              ┌────────▼────────┐
                              │   Ingress       │
                              │   Controller    │
                              └────────┬────────┘
                                       │
          ┌────────────────────────────┼────────────────────────────┐
          │                            │                            │
          ▼                            ▼                            ▼
┌─────────────────┐         ┌─────────────────┐         ┌─────────────────┐
│   Frontend      │         │   API Service   │         │   Workers       │
│   (Next.js)     │         │   (Fastify)     │         │  (JetStream)    │
│   ────────────  │         │   ────────────  │         │   ────────────  │
│   Replicas: 3   │         │   Replicas: 5   │         │   Replicas: 3   │
│   CPU: 500m     │         │   CPU: 1000m    │         │   CPU: 500m     │
│   Mem: 512Mi    │         │   Mem: 1Gi      │         │   Mem: 512Mi    │
└─────────────────┘         └─────────────────┘         └─────────────────┘
          │                            │                            │
          └────────────────────────────┼────────────────────────────┘
                                       │
          ┌────────────────────────────┼────────────────────────────┐
          │                            │                            │
          ▼                            ▼                            ▼
┌─────────────────┐         ┌─────────────────┐         ┌─────────────────┐
│   PostgreSQL    │         │   ClickHouse    │         │   Redis         │
│   (HA Cluster)  │         │   (Cluster)     │         │   (Sentinel)    │
│   ────────────  │         │   ────────────  │         │   ────────────  │
│   3 nodes       │         │   3 shards      │         │   3 nodes       │
│   Patroni       │         │   2 replicas    │         │   Sentinel      │
└─────────────────┘         └─────────────────┘         └─────────────────┘

NAMESPACE ORGANIZATION
──────────────────────
• nats-console-prod     Production workloads
• nats-console-staging  Staging environment
• nats-console-infra    Shared infrastructure (DBs)
• nats-console-monitor  Monitoring stack

HORIZONTAL POD AUTOSCALER
─────────────────────────
API Service:
  - Min: 3, Max: 20
  - CPU target: 70%
  - Custom metric: requests/sec

Workers:
  - Min: 2, Max: 10
  - Custom metric: queue depth

PERSISTENT VOLUMES
──────────────────
PostgreSQL:   100Gi SSD (each node)
ClickHouse:   500Gi SSD (each shard)
Redis:        20Gi SSD (persistence)

9. Feature Roadmap

┌─────────────────────────────────────────────────────────────────────────────┐
│                            FEATURE ROADMAP                                   │
└─────────────────────────────────────────────────────────────────────────────┘

PHASE 1: MVP (Months 1-3)
─────────────────────────
✓ Core authentication (email/password, OAuth)
✓ Basic RBAC (Admin, Editor, Viewer)
✓ Cluster connection management
✓ Stream CRUD operations
✓ Consumer CRUD operations
✓ Basic message browser
✓ Real-time metrics dashboard
✓ PostgreSQL + Redis setup

PHASE 2: Analytics & Monitoring (Months 4-5)
────────────────────────────────────────────
○ ClickHouse integration
○ Historical metrics storage
○ Custom dashboards builder
○ Alert rules engine
○ Webhook notifications
○ Consumer lag tracking
○ Throughput analytics

PHASE 3: Enterprise Features (Months 6-8)
─────────────────────────────────────────
○ SSO/SAML integration
○ Advanced RBAC (custom roles)
○ Team management
○ Audit logging
○ Multi-cluster management
○ KV Store browser
○ Object Store browser
○ Schema registry integration

PHASE 4: Advanced Capabilities (Months 9-12)
────────────────────────────────────────────
○ Message replay functionality
○ Dead letter queue management
○ Stream mirroring configuration
○ Partition/subject analytics
○ Cost analysis dashboard
○ API key management
○ Terraform provider
○ CLI tool

PHASE 5: Polish & Scale (Months 12+)
────────────────────────────────────
○ Mobile app
○ Dark mode
○ Internationalization
○ Plugin system
○ Marketplace
○ White-label support

10. Project Structure

┌─────────────────────────────────────────────────────────────────────────────┐
│                          PROJECT STRUCTURE                                   │
└─────────────────────────────────────────────────────────────────────────────┘

nats-console/
├── apps/
│   ├── web/                          # Next.js frontend
│   │   ├── app/                      # App router pages
│   │   │   ├── (auth)/               # Auth pages (login, register)
│   │   │   ├── (dashboard)/          # Main dashboard pages
│   │   │   │   ├── clusters/
│   │   │   │   ├── streams/
│   │   │   │   ├── consumers/
│   │   │   │   ├── analytics/
│   │   │   │   └── settings/
│   │   │   ├── api/                  # API routes (if needed)
│   │   │   └── layout.tsx
│   │   ├── components/
│   │   │   ├── ui/                   # shadcn components
│   │   │   ├── clusters/
│   │   │   ├── streams/
│   │   │   ├── consumers/
│   │   │   ├── charts/
│   │   │   └── common/
│   │   ├── hooks/
│   │   ├── lib/
│   │   ├── stores/                   # Zustand stores
│   │   └── styles/
│   │
│   └── api/                          # Fastify backend
│       ├── src/
│       │   ├── modules/
│       │   │   ├── auth/
│       │   │   ├── users/
│       │   │   ├── organizations/
│       │   │   ├── clusters/
│       │   │   ├── streams/
│       │   │   ├── consumers/
│       │   │   ├── analytics/
│       │   │   └── alerts/
│       │   ├── common/
│       │   │   ├── middleware/
│       │   │   ├── guards/
│       │   │   ├── decorators/
│       │   │   └── utils/
│       │   ├── database/
│       │   │   ├── postgres/
│       │   │   ├── clickhouse/
│       │   │   └── redis/
│       │   ├── nats/                 # NATS client wrapper
│       │   ├── workers/              # Background jobs
│       │   └── websocket/            # Real-time handlers
│       └── tests/
│
├── packages/
│   ├── shared/                       # Shared types, utils
│   │   ├── types/
│   │   ├── schemas/                  # Zod schemas
│   │   └── utils/
│   ├── ui/                           # Shared UI components
│   └── config/                       # Shared configs
│
├── infrastructure/
│   ├── docker/
│   │   ├── Dockerfile.web
│   │   ├── Dockerfile.api
│   │   └── docker-compose.yml
│   ├── kubernetes/
│   │   ├── base/
│   │   ├── overlays/
│   │   │   ├── development/
│   │   │   ├── staging/
│   │   │   └── production/
│   │   └── kustomization.yaml
│   └── terraform/
│       ├── modules/
│       └── environments/
│
├── docs/
│   ├── architecture/
│   ├── api/
│   └── deployment/
│
├── scripts/
│   ├── setup.sh
│   ├── migrate.sh
│   └── seed.sh
│
├── turbo.json                        # Turborepo config
├── pnpm-workspace.yaml
└── README.md

This design provides a comprehensive foundation for building a modern NATS JetStream management console. The architecture is scalable, the database schemas are optimized for their specific use cases (PostgreSQL for transactional data, ClickHouse for analytics, Redis for caching/real-time), and the UI follows patterns established by industry leaders like Redpanda and Confluent.


NATS JetStream Console - Advanced Capabilities Design Document

Table of Contents

  1. Advanced Stream Management
  2. Consumer Management & Orchestration
  3. Message Workflows & Pipelines
  4. Schema Registry & Data Governance
  5. Stream Processing & Transforms
  6. AI-Powered Features
  7. Self-Service Portal & Quotas
  8. GitOps & Infrastructure as Code
  9. Advanced Observability
  10. Data Lineage & Catalog
  11. Disaster Recovery & Replication
  12. Developer Experience

1. Advanced Stream Management

1.1 Stream Lifecycle Management

┌─────────────────────────────────────────────────────────────────────────────┐
│                    STREAM LIFECYCLE STATE MACHINE                            │
└─────────────────────────────────────────────────────────────────────────────┘

                         ┌─────────────┐
                         │   DRAFT     │◄──────── Save as Draft
                         │  (Pending)  │
                         └──────┬──────┘
                                │
                         Validate & Create
                                │
                                ▼
┌──────────────┐        ┌─────────────┐        ┌──────────────┐
│   PAUSED     │◄───────│   ACTIVE    │───────►│  MAINTENANCE │
│              │ pause  │             │ maint  │              │
│              │───────►│             │◄───────│              │
└──────────────┘ resume └──────┬──────┘ resume └──────────────┘
                               │
                    ┌──────────┼──────────┐
                    │          │          │
                 purge      migrate    archive
                    │          │          │
                    ▼          ▼          ▼
            ┌──────────┐ ┌──────────┐ ┌──────────┐
            │  PURGED  │ │MIGRATING │ │ ARCHIVED │
            │          │ │          │ │          │
            └──────────┘ └────┬─────┘ └────┬─────┘
                              │            │
                              ▼            ▼
                         ┌──────────┐ ┌──────────┐
                         │ MIGRATED │ │ ARCHIVED │
                         │ (Shadow) │ │ (Cold)   │
                         └──────────┘ └──────────┘
                                           │
                                        restore
                                           │
                                           ▼
                                    Back to ACTIVE

1.2 Stream Configuration Management

┌─────────────────────────────────────────────────────────────────────────────┐
│                     STREAM CONFIGURATION SYSTEM                              │
└─────────────────────────────────────────────────────────────────────────────┘

CONFIGURATION LAYERS (Inheritance Model)
────────────────────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Layer 4: Stream Override                                                    │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Specific stream settings that override all lower layers                     │
│  Example: maxBytes: 50GB for ORDERS stream only                             │
├─────────────────────────────────────────────────────────────────────────────┤
│  Layer 3: Environment Policy                                                 │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Environment-specific defaults (production, staging, dev)                    │
│  Example: Production requires replicas >= 3                                  │
├─────────────────────────────────────────────────────────────────────────────┤
│  Layer 2: Team/Namespace Policy                                              │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Team-level quotas and defaults                                              │
│  Example: Team "payments" max 100GB total storage                           │
├─────────────────────────────────────────────────────────────────────────────┤
│  Layer 1: Organization Defaults                                              │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Base configuration for all streams                                          │
│  Example: Default retention 7 days, default replicas 3                       │
└─────────────────────────────────────────────────────────────────────────────┘


STREAM TEMPLATES LIBRARY
────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  📋 Template: High-Throughput Events                                         │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Use Case: Real-time analytics, telemetry, logs                              │
│                                                                              │
│  Configuration:                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  storage: "memory"           │  discard: "old"                      │    │
│  │  retention: "limits"         │  maxMsgsPerSubject: 100000           │    │
│  │  maxMsgs: 10,000,000        │  duplicateWindow: "2m"               │    │
│  │  maxBytes: "10GB"           │  allowRollup: true                   │    │
│  │  maxAge: "1h"               │  denyDelete: false                   │    │
│  │  replicas: 1                │  denyPurge: false                    │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                                                                              │
│  Estimated Performance: ~500K msgs/sec write, ~1M msgs/sec read             │
│  Recommended Consumers: Push-based, no ack required                          │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  📋 Template: Transactional Work Queue                                       │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Use Case: Order processing, payment events, critical workflows              │
│                                                                              │
│  Configuration:                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  storage: "file"             │  discard: "new"                      │    │
│  │  retention: "workqueue"      │  maxMsgsPerSubject: -1               │    │
│  │  maxMsgs: -1                │  duplicateWindow: "5m"               │    │
│  │  maxBytes: "100GB"          │  allowRollup: false                  │    │
│  │  maxAge: "7d"               │  denyDelete: true                    │    │
│  │  replicas: 3                │  denyPurge: true                     │    │
│  │  maxMsgSize: "8MB"          │  placement: { tags: ["ssd"] }        │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                                                                              │
│  Estimated Performance: ~50K msgs/sec write, exactly-once delivery          │
│  Recommended Consumers: Pull-based, explicit ack, maxAckPending=1000        │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  📋 Template: Event Sourcing / Audit Log                                     │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Use Case: Immutable event log, compliance audit, CQRS                       │
│                                                                              │
│  Configuration:                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  storage: "file"             │  discard: "new"                      │    │
│  │  retention: "limits"         │  maxMsgsPerSubject: -1               │    │
│  │  maxMsgs: -1                │  duplicateWindow: "10m"              │    │
│  │  maxBytes: "1TB"            │  allowRollup: false                  │    │
│  │  maxAge: "365d"             │  denyDelete: true                    │    │
│  │  replicas: 3                │  denyPurge: true                     │    │
│  │  compression: "s2"          │  sealed: false (true after period)   │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                                                                              │
│  Special: Automatic archival to S3/GCS after 30 days                        │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  📋 Template: IoT Sensor Data                                                │
│  ─────────────────────────────────────────────────────────────────────────  │
│  Use Case: Device telemetry, time-series data, edge computing               │
│                                                                              │
│  Configuration:                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  storage: "file"             │  discard: "old"                      │    │
│  │  retention: "limits"         │  maxMsgsPerSubject: 1000             │    │
│  │  maxMsgs: 100,000,000       │  duplicateWindow: "30s"              │    │
│  │  maxBytes: "500GB"          │  allowRollup: true                   │    │
│  │  maxAge: "30d"              │  subjects: ["sensors.>"]             │    │
│  │  replicas: 2                │  subjectTransform: { ... }           │    │
│  │  compression: "s2"          │                                      │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                                                                              │
│  Special: Subject hierarchy sensors.{region}.{device_id}.{metric}           │
└─────────────────────────────────────────────────────────────────────────────┘

1.3 Stream Operations UI

┌─────────────────────────────────────────────────────────────────────────────┐
│  Stream: ORDERS                                          [● Active]         │
│  Production Cluster                                                          │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  [Overview] [Messages] [Consumers] [Config] [Metrics] [Operations] [Audit]  │
│  ══════════════════════════════════════════════════════════════════════════ │
│                                                                              │
│  OPERATIONS CENTER                                                           │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Quick Actions                                                          ││
│  │  ────────────────────────────────────────────────────────────────────── ││
│  │                                                                         ││
│  │  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐       ││
│  │  │  ⏸️ Pause    │ │  🗑️ Purge   │ │  📋 Clone   │ │  📤 Export  │       ││
│  │  │  Stream     │ │  Messages   │ │  Stream     │ │  Config     │       ││
│  │  └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘       ││
│  │                                                                         ││
│  │  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐       ││
│  │  │  🔄 Mirror  │ │  📦 Archive │ │  🔀 Migrate │ │  ⚡ Scale   │       ││
│  │  │  Setup      │ │  to S3      │ │  to Cluster │ │  Replicas   │       ││
│  │  └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘       ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Purge Options                                                    [Run] ││
│  │  ────────────────────────────────────────────────────────────────────── ││
│  │                                                                         ││
│  │  Purge Type:  ○ All Messages                                            ││
│  │               ○ By Subject Filter: [orders.cancelled.*        ]         ││
│  │               ○ By Sequence Range: [________] to [________]             ││
│  │               ● By Time Range:                                          ││
│  │                                                                         ││
│  │  From: [2024-01-01 00:00  📅]  To: [2024-01-07 23:59  📅]              ││
│  │                                                                         ││
│  │  ☑️ Keep first message per subject (tombstone)                          ││
│  │  ☐ Dry run (show what would be purged)                                  ││
│  │                                                                         ││
│  │  ⚠️ Warning: This will permanently delete ~1,234,567 messages           ││
│  │     Estimated storage reclaimed: 2.3 GB                                 ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Message Replay / Republish                                       [Run] ││
│  │  ────────────────────────────────────────────────────────────────────── ││
│  │                                                                         ││
│  │  Source:                                                                ││
│  │    Stream: [ORDERS                    ▼]                                ││
│  │    Subject Filter: [orders.created.>          ]                         ││
│  │    Sequence Range: [1000000   ] to [2000000   ]                         ││
│  │                                                                         ││
│  │  Destination:                                                           ││
│  │    ○ Same Stream (different subject)                                    ││
│  │      New Subject Prefix: [orders.replay.              ]                 ││
│  │    ● Different Stream                                                   ││
│  │      Target Stream: [ORDERS_REPROCESS         ▼]                        ││
│  │                                                                         ││
│  │  Options:                                                               ││
│  │    Rate Limit: [1000    ] msgs/sec                                      ││
│  │    ☑️ Preserve original timestamps                                       ││
│  │    ☑️ Add replay header (X-Replay-Source)                                ││
│  │    ☐ Transform messages (apply function)                                ││
│  │                                                                         ││
│  │  Estimated: 1,000,000 messages, ~45 minutes at 1000 msgs/sec           ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

1.4 Subject Management

┌─────────────────────────────────────────────────────────────────────────────┐
│                        SUBJECT HIERARCHY MANAGEMENT                          │
└─────────────────────────────────────────────────────────────────────────────┘

SUBJECT TREE VISUALIZATION
──────────────────────────

Stream: ORDERS (subjects: orders.>)

orders
├── created                    │ 45.2M msgs │ 12.3 GB │ ↑ 1,250/s
│   ├── us-east               │ 23.1M msgs │  6.2 GB │ ↑ 650/s
│   ├── us-west               │ 12.4M msgs │  3.4 GB │ ↑ 350/s
│   └── eu-west               │  9.7M msgs │  2.7 GB │ ↑ 250/s
├── updated                    │ 32.1M msgs │  8.9 GB │ ↑ 890/s
│   ├── status                │ 18.2M msgs │  4.1 GB │ ↑ 520/s
│   ├── payment               │  8.9M msgs │  2.8 GB │ ↑ 230/s
│   └── shipping              │  5.0M msgs │  2.0 GB │ ↑ 140/s
├── cancelled                  │  2.3M msgs │  0.6 GB │ ↑ 45/s
├── completed                  │ 28.9M msgs │  7.8 GB │ ↑ 780/s
└── refunded                   │  1.2M msgs │  0.3 GB │ ↑ 25/s
                              ─────────────────────────────────
                    TOTAL:    │109.7M msgs │ 29.9 GB │ ↑ 2,990/s


SUBJECT TRANSFORMS
──────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Subject Transform Rules                                          [+ Add]   │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  Rule 1: Region Normalization                                    [Edit] [×] │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  Source:      orders.*.us-east-1.*                                  │    │
│  │  Destination: orders.$.us-east.$                                    │    │
│  │  Description: Normalize AWS region to simplified region code        │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                                                                              │
│  Rule 2: Legacy Subject Migration                                [Edit] [×] │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  Source:      legacy.orders.*                                       │    │
│  │  Destination: orders.migrated.$                                     │    │
│  │  Description: Migrate legacy subject namespace                      │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                                                                              │
│  Rule 3: Add Timestamp Prefix                                    [Edit] [×] │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  Source:      orders.>                                              │    │
│  │  Destination: orders.{{year}}.{{month}}.$                           │    │
│  │  Description: Partition by year/month for archival                  │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────────────────────────┘

2. Consumer Management & Orchestration

2.1 Consumer Lifecycle & State Machine

┌─────────────────────────────────────────────────────────────────────────────┐
│                      CONSUMER STATE MACHINE                                  │
└─────────────────────────────────────────────────────────────────────────────┘

                              ┌──────────────┐
                              │   CREATING   │
                              └──────┬───────┘
                                     │
                                     ▼
        ┌────────────────────────────────────────────────────┐
        │                                                    │
        ▼                                                    │
┌──────────────┐   subscribe   ┌──────────────┐            │
│   INACTIVE   │──────────────►│    ACTIVE    │────────────┤
│ (No clients) │               │  (Running)   │            │
└──────┬───────┘◄──────────────└──────┬───────┘            │
       │         unsubscribe          │                    │
       │                              │                    │
       │                         ┌────┴────┐               │
       │                         │         │               │
       │                      pause     stalled            │
       │                         │         │               │
       │                         ▼         ▼               │
       │                  ┌──────────┐ ┌──────────┐        │
       │                  │  PAUSED  │ │ STALLED  │        │
       │                  └────┬─────┘ └────┬─────┘        │
       │                       │            │               │
       │                    resume       recover           │
       │                       │            │               │
       │                       └─────┬──────┘               │
       │                             │                      │
       │                             ▼                      │
       │                     Back to ACTIVE                 │
       │                                                    │
       └───────────────────────┬────────────────────────────┘
                               │
                            delete
                               │
                               ▼
                        ┌──────────────┐
                        │   DELETED    │
                        └──────────────┘


CONSUMER HEALTH INDICATORS
──────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Health Score Calculation                                                    │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  Score Components (0-100 each, weighted average):                           │
│                                                                              │
│  ┌────────────────────────────────────────────────────────────────────────┐ │
│  │ Component        │ Weight │ Healthy    │ Warning    │ Critical        │ │
│  ├──────────────────┼────────┼────────────┼────────────┼─────────────────┤ │
│  │ Lag              │ 30%    │ < 1000     │ 1K-10K     │ > 10K           │ │
│  │ Processing Rate  │ 25%    │ > 90% avg  │ 50-90%     │ < 50%           │ │
│  │ Ack Pending      │ 20%    │ < 50%      │ 50-80%     │ > 80%           │ │
│  │ Redelivery Rate  │ 15%    │ < 1%       │ 1-5%       │ > 5%            │ │
│  │ Connection       │ 10%    │ Stable     │ Reconnects │ Disconnected    │ │
│  └────────────────────────────────────────────────────────────────────────┘ │
│                                                                              │
│  Overall Health:                                                             │
│  ● Healthy (80-100)  ⚠️ Warning (50-79)  🔴 Critical (0-49)                 │
└─────────────────────────────────────────────────────────────────────────────┘

2.2 Consumer Groups & Scaling

┌─────────────────────────────────────────────────────────────────────────────┐
│                      CONSUMER GROUP MANAGEMENT                               │
└─────────────────────────────────────────────────────────────────────────────┘

CONSUMER GROUP TOPOLOGY
───────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Consumer Group: order-processors                                            │
│  Stream: ORDERS │ Filter: orders.created.> │ Delivery: Pull                 │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│                          ┌─────────────────┐                                │
│                          │  Stream: ORDERS │                                │
│                          │   (10 partitions)│                                │
│                          └────────┬────────┘                                │
│                                   │                                          │
│              ┌────────────────────┼────────────────────┐                    │
│              │                    │                    │                    │
│              ▼                    ▼                    ▼                    │
│     ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐            │
│     │  Consumer #1    │ │  Consumer #2    │ │  Consumer #3    │            │
│     │  ───────────────│ │  ───────────────│ │  ───────────────│            │
│     │  Host: pod-1    │ │  Host: pod-2    │ │  Host: pod-3    │            │
│     │  Partitions: 0-3│ │  Partitions: 4-6│ │  Partitions: 7-9│            │
│     │  Rate: 450/s    │ │  Rate: 420/s    │ │  Rate: 380/s    │            │
│     │  Lag: 234       │ │  Lag: 189       │ │  Lag: 567       │            │
│     │  ● Healthy      │ │  ● Healthy      │ │  ⚠️ Warning     │            │
│     └─────────────────┘ └─────────────────┘ └─────────────────┘            │
│                                                                              │
│  Total Throughput: 1,250 msgs/sec │ Total Lag: 990 │ Avg Latency: 45ms     │
│                                                                              │
│  [+ Add Consumer] [Rebalance] [Scale to 5] [Configure Autoscale]            │
└─────────────────────────────────────────────────────────────────────────────┘


AUTOSCALING CONFIGURATION
─────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Consumer Autoscaling: order-processors                          [Enabled]  │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  Scaling Metrics                                                             │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  Primary Metric: [Consumer Lag                      ▼]              │    │
│  │                                                                     │    │
│  │  Scale Up When:                                                     │    │
│  │    Lag > [5000    ] for [3     ] consecutive checks                │    │
│  │    OR Processing Rate < [80    ]% of target                        │    │
│  │                                                                     │    │
│  │  Scale Down When:                                                   │    │
│  │    Lag < [500     ] for [10    ] consecutive checks                │    │
│  │    AND Processing Rate > [95    ]% of target                       │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                                                                              │
│  Scaling Limits                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  Minimum Consumers: [2     ]                                        │    │
│  │  Maximum Consumers: [10    ]                                        │    │
│  │  Scale Up Step:     [2     ] consumers                              │    │
│  │  Scale Down Step:   [1     ] consumer                               │    │
│  │  Cooldown Period:   [5     ] minutes                                │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                                                                              │
│  Scaling History (Last 24h)                                                  │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  10 ┤                              ╭───────╮                        │    │
│  │     │                         ╭────╯       ╰────╮                   │    │
│  │   5 ┤    ╭────╮         ╭─────╯                 ╰────────────       │    │
│  │     │────╯    ╰─────────╯                                           │    │
│  │   0 ┼───────────────────────────────────────────────────────────   │    │
│  │      00:00    06:00    12:00    18:00    Now                        │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────────────────────────┘

2.3 Dead Letter Queue Management

┌─────────────────────────────────────────────────────────────────────────────┐
│                     DEAD LETTER QUEUE MANAGEMENT                             │
└─────────────────────────────────────────────────────────────────────────────┘

DLQ ARCHITECTURE
────────────────

┌──────────────────────────────────────────────────────────────────────────────┐
│                                                                              │
│    Source Stream                    DLQ Stream                               │
│    ┌──────────────┐                ┌──────────────┐                         │
│    │   ORDERS     │                │  ORDERS_DLQ  │                         │
│    │              │                │              │                         │
│    │  Message ────┼───► Consumer ──┼──► Failed ───┼───► DLQ Consumer       │
│    │              │    (max 5      │    Messages  │     (Manual/Auto)       │
│    │              │     retries)   │              │                         │
│    └──────────────┘                └──────────────┘                         │
│                                           │                                  │
│                                           ▼                                  │
│                              ┌─────────────────────┐                        │
│                              │  DLQ Actions        │                        │
│                              ├─────────────────────┤                        │
│                              │  • Retry to source  │                        │
│                              │  • Route to handler │                        │
│                              │  • Archive          │                        │
│                              │  • Delete           │                        │
│                              │  • Transform & Retry│                        │
│                              └─────────────────────┘                        │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘


DLQ BROWSER UI
──────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Dead Letter Queue: ORDERS_DLQ                     [Retry All] [Purge All]  │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  Summary: 1,234 messages │ Oldest: 2 days ago │ Most Common: ValidationError│
│                                                                              │
│  Filter: [All Errors ▼]  Subject: [____________]  Time: [Last 24h ▼]       │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │ □ │ Seq      │ Original Subject  │ Error Type       │ Retries │ Age    ││
│  ├───┼──────────┼───────────────────┼──────────────────┼─────────┼────────┤│
│  │ □ │ 45678901 │ orders.created.us │ ValidationError  │ 5/5     │ 2h ago ││
│  │   │          │                   │ "Invalid amount" │         │        ││
│  ├───┼──────────┼───────────────────┼──────────────────┼─────────┼────────┤│
│  │ □ │ 45678899 │ orders.created.eu │ TimeoutError     │ 5/5     │ 3h ago ││
│  │   │          │                   │ "DB timeout"     │         │        ││
│  ├───┼──────────┼───────────────────┼──────────────────┼─────────┼────────┤│
│  │ □ │ 45678850 │ orders.updated    │ SchemaError      │ 5/5     │ 5h ago ││
│  │   │          │                   │ "Missing field"  │         │        ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Selected Message Details                                                    │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Sequence: 45678901                                                     ││
│  │  Original Subject: orders.created.us-east                               ││
│  │  Original Stream: ORDERS                                                ││
│  │  Failed At: 2024-01-15 10:23:45 UTC                                     ││
│  │  Retry Count: 5 of 5                                                    ││
│  │                                                                         ││
│  │  Error Details:                                                         ││
│  │  ┌───────────────────────────────────────────────────────────────────┐  ││
│  │  │  Type: ValidationError                                            │  ││
│  │  │  Message: "Field 'amount' must be positive, got: -50.00"          │  ││
│  │  │  Consumer: order-processor-1                                      │  ││
│  │  │  Stack Trace: [Expand]                                            │  ││
│  │  └───────────────────────────────────────────────────────────────────┘  ││
│  │                                                                         ││
│  │  Message Payload:                                                       ││
│  │  ┌───────────────────────────────────────────────────────────────────┐  ││
│  │  │  {                                                                │  ││
│  │  │    "order_id": "ORD-123456",                                      │  ││
│  │  │    "amount": -50.00,        ◄── Error source highlighted         │  ││
│  │  │    "currency": "USD",                                             │  ││
│  │  │    ...                                                            │  ││
│  │  │  }                                                                │  ││
│  │  └───────────────────────────────────────────────────────────────────┘  ││
│  │                                                                         ││
│  │  Actions: [Retry] [Retry with Edit] [Route to Handler] [Archive] [Del] ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Error Distribution (Last 7 days)                                            │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  ValidationError    ████████████████████████████████  68%              ││
│  │  TimeoutError       ██████████░░░░░░░░░░░░░░░░░░░░░░  18%              ││
│  │  SchemaError        █████░░░░░░░░░░░░░░░░░░░░░░░░░░░  9%               ││
│  │  NetworkError       ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  5%               ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

3. Message Workflows & Pipelines

3.1 Visual Workflow Builder

┌─────────────────────────────────────────────────────────────────────────────┐
│                      WORKFLOW / PIPELINE BUILDER                             │
└─────────────────────────────────────────────────────────────────────────────┘

WORKFLOW CANVAS
───────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Workflow: Order Processing Pipeline                   [Save] [Deploy] [⋮]  │
│  Status: ● Running │ Last deployed: 2h ago │ Messages processed: 1.2M      │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │  COMPONENT PALETTE                                                    │   │
│  │  ──────────────────                                                   │   │
│  │  Sources:    [📥 Stream] [📨 Subject] [⏰ Schedule] [🔗 HTTP]         │   │
│  │  Transforms: [🔄 Map] [🔍 Filter] [📊 Aggregate] [🔀 Split]          │   │
│  │  Actions:    [📤 Publish] [💾 Store] [📧 Notify] [🌐 HTTP Call]      │   │
│  │  Flow:       [⑂ Branch] [⊕ Merge] [⏱️ Delay] [🔁 Retry]              │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                              │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                          WORKFLOW CANVAS                              │   │
│  │                                                                       │   │
│  │   ┌─────────────┐                                                     │   │
│  │   │ 📥 Source   │                                                     │   │
│  │   │ ─────────── │                                                     │   │
│  │   │ ORDERS      │                                                     │   │
│  │   │ orders.>    │                                                     │   │
│  │   └──────┬──────┘                                                     │   │
│  │          │                                                            │   │
│  │          ▼                                                            │   │
│  │   ┌─────────────┐                                                     │   │
│  │   │ 🔍 Filter   │                                                     │   │
│  │   │ ─────────── │                                                     │   │
│  │   │ amount>100  │                                                     │   │
│  │   └──────┬──────┘                                                     │   │
│  │          │                                                            │   │
│  │          ▼                                                            │   │
│  │   ┌─────────────┐         ┌─────────────┐                             │   │
│  │   │ ⑂ Branch    │────────►│ 🔄 Enrich   │                             │   │
│  │   │ ─────────── │ high    │ ─────────── │                             │   │
│  │   │ priority?   │ priority│ Add customer│                             │   │
│  │   └──────┬──────┘         │ data        │                             │   │
│  │          │ normal         └──────┬──────┘                             │   │
│  │          │                       │                                    │   │
│  │          ▼                       │                                    │   │
│  │   ┌─────────────┐               │                                    │   │
│  │   │ 📤 Publish  │               │                                    │   │
│  │   │ ─────────── │               │                                    │   │
│  │   │ ORDERS_     │◄──────────────┘                                    │   │
│  │   │ PROCESSED   │                                                     │   │
│  │   └─────────────┘                                                     │   │
│  │                                                                       │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                              │
│  NODE INSPECTOR (Filter Node Selected)                                       │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │  Node: Filter                                         [Delete Node]  │   │
│  │  ──────────────────────────────────────────────────────────────────  │   │
│  │                                                                       │   │
│  │  Condition Type: [Expression ▼]                                       │   │
│  │                                                                       │   │
│  │  Expression:                                                          │   │
│  │  ┌────────────────────────────────────────────────────────────────┐  │   │
│  │  │  msg.data.amount > 100 && msg.data.status === 'pending'        │  │   │
│  │  └────────────────────────────────────────────────────────────────┘  │   │
│  │                                                                       │   │
│  │  Test with sample message:                               [Test]      │   │
│  │  Result: ● Pass (message would continue)                             │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────────────────┘


WORKFLOW DEFINITION SCHEMA
──────────────────────────

{
  "id": "wf_order_processing",
  "name": "Order Processing Pipeline",
  "version": "1.2.0",
  "enabled": true,
  
  "trigger": {
    "type": "stream",
    "config": {
      "stream": "ORDERS",
      "subjects": ["orders.created.>"],
      "deliverPolicy": "new",
      "ackPolicy": "explicit"
    }
  },
  
  "nodes": [
    {
      "id": "filter_high_value",
      "type": "filter",
      "config": {
        "expression": "msg.data.amount > 100"
      },
      "next": {
        "pass": "branch_priority",
        "fail": null  // Drop message
      }
    },
    {
      "id": "branch_priority",
      "type": "branch",
      "config": {
        "conditions": [
          {
            "name": "high_priority",
            "expression": "msg.data.priority === 'high' || msg.data.amount > 1000",
            "next": "enrich_customer"
          }
        ],
        "default": "publish_standard"
      }
    },
    {
      "id": "enrich_customer",
      "type": "http_call",
      "config": {
        "url": "https://api.internal/customers/${msg.data.customer_id}",
        "method": "GET",
        "timeout": "5s",
        "merge": {
          "path": "customer",
          "mode": "shallow"
        }
      },
      "next": "publish_priority",
      "onError": "publish_standard"
    },
    {
      "id": "publish_priority",
      "type": "publish",
      "config": {
        "stream": "ORDERS_PRIORITY",
        "subject": "orders.priority.${msg.data.region}"
      }
    },
    {
      "id": "publish_standard",
      "type": "publish",
      "config": {
        "stream": "ORDERS_PROCESSED",
        "subject": "orders.processed.${msg.data.region}"
      }
    }
  ],
  
  "errorHandling": {
    "maxRetries": 3,
    "retryDelay": "1s",
    "exponentialBackoff": true,
    "dlq": "WORKFLOW_DLQ"
  },
  
  "monitoring": {
    "metrics": true,
    "tracing": true,
    "alertOnError": true
  }
}

3.2 Message Routing & Fan-out

┌─────────────────────────────────────────────────────────────────────────────┐
│                      MESSAGE ROUTING CONFIGURATION                           │
└─────────────────────────────────────────────────────────────────────────────┘

ROUTING RULES ENGINE
────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Routing Rules: ORDERS Stream                              [+ Add Rule]     │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Rule 1: High-Value Order Routing                    Priority: 1  [▲▼] ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │                                                                         ││
│  │  WHEN:                                                                  ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Subject matches: orders.created.*                                │ ││
│  │  │  AND payload.amount > 10000                                       │ ││
│  │  │  AND payload.currency IN ['USD', 'EUR']                           │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  │  THEN:                                                                  ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  ☑️ Copy to stream: ORDERS_HIGH_VALUE                             │ ││
│  │  │  ☑️ Publish to subject: notifications.vip.orders                  │ ││
│  │  │  ☑️ Add header: X-Priority = high                                 │ ││
│  │  │  ☐ Transform payload (apply function)                             │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                         [Edit] [Delete] ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Rule 2: Regional Fan-out                            Priority: 2  [▲▼] ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │                                                                         ││
│  │  WHEN:                                                                  ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Subject matches: orders.*.>                                      │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  │  THEN:                                                                  ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Route to regional streams based on payload.region:               │ ││
│  │  │                                                                   │ ││
│  │  │    us-east, us-west → ORDERS_US                                   │ ││
│  │  │    eu-west, eu-central → ORDERS_EU                                │ ││
│  │  │    ap-* → ORDERS_APAC                                             │ ││
│  │  │    * (default) → ORDERS_GLOBAL                                    │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                         [Edit] [Delete] ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Rule 3: Compliance Audit Copy                       Priority: 10 [▲▼] ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │                                                                         ││
│  │  WHEN: All messages (catch-all)                                         ││
│  │                                                                         ││
│  │  THEN:                                                                  ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  ☑️ Copy to stream: AUDIT_LOG (immutable)                         │ ││
│  │  │  ☑️ Add headers:                                                  │ ││
│  │  │       X-Audit-Time: ${timestamp}                                  │ ││
│  │  │       X-Audit-Hash: ${sha256(payload)}                            │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                         [Edit] [Delete] ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘


FAN-OUT TOPOLOGY VISUALIZATION
──────────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Fan-out Topology: ORDERS                                                    │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│                              ┌─────────────┐                                │
│                              │   ORDERS    │                                │
│                              │  (Source)   │                                │
│                              │  2.5K/sec   │                                │
│                              └──────┬──────┘                                │
│                                     │                                        │
│              ┌──────────────────────┼──────────────────────┐                │
│              │                      │                      │                │
│              ▼                      ▼                      ▼                │
│     ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐      │
│     │ ORDERS_US       │    │ ORDERS_EU       │    │ ORDERS_APAC     │      │
│     │ (Regional)      │    │ (Regional)      │    │ (Regional)      │      │
│     │ 1.2K/sec        │    │ 800/sec         │    │ 500/sec         │      │
│     └────────┬────────┘    └────────┬────────┘    └────────┬────────┘      │
│              │                      │                      │                │
│              │              ┌───────┴───────┐              │                │
│              │              ▼               ▼              │                │
│              │     ┌─────────────┐  ┌─────────────┐        │                │
│              │     │ EU_GDPR     │  │ EU_VAT      │        │                │
│              │     │ (Compliance)│  │ (Tax)       │        │                │
│              │     └─────────────┘  └─────────────┘        │                │
│              │                                             │                │
│              └──────────────────┬──────────────────────────┘                │
│                                 │                                            │
│                                 ▼                                            │
│                        ┌─────────────────┐                                  │
│                        │ AUDIT_LOG       │                                  │
│                        │ (Immutable)     │                                  │
│                        │ 2.5K/sec        │                                  │
│                        └─────────────────┘                                  │
│                                                                              │
│  Legend: ──► Mirror/Copy   ───► Filter/Route   - - -► Conditional          │
└─────────────────────────────────────────────────────────────────────────────┘

3.3 Stream Mirroring & Sourcing

┌─────────────────────────────────────────────────────────────────────────────┐
│                      STREAM MIRRORING CONFIGURATION                          │
└─────────────────────────────────────────────────────────────────────────────┘

MIRROR SETUP WIZARD
───────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Create Stream Mirror                                                        │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  Step 2 of 4: Configure Mirror Source                                        │
│                                                                              │
│  Source Configuration                                                        │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │                                                                     │    │
│  │  Mirror Type:                                                       │    │
│  │    ● Full Mirror (all messages, 1:1 copy)                          │    │
│  │    ○ Filtered Mirror (subset of subjects)                          │    │
│  │    ○ Aggregate Mirror (multiple sources)                           │    │
│  │                                                                     │    │
│  │  Source Cluster: [Production US-East           ▼]                  │    │
│  │  Source Stream:  [ORDERS                       ▼]                  │    │
│  │                                                                     │    │
│  │  Start Position:                                                    │    │
│  │    ● From Beginning (full sync)                                    │    │
│  │    ○ From Sequence: [___________]                                  │    │
│  │    ○ From Time: [____________________📅]                           │    │
│  │    ○ New Messages Only                                             │    │
│  │                                                                     │    │
│  │  Filter Subjects (optional):                                        │    │
│  │  ┌───────────────────────────────────────────────────────────────┐ │    │
│  │  │  orders.created.>                                       [+ Add]│ │    │
│  │  │  orders.completed.>                                     [× Del]│ │    │
│  │  └───────────────────────────────────────────────────────────────┘ │    │
│  │                                                                     │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                                                                              │
│  Destination Configuration                                                   │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │                                                                     │    │
│  │  Destination Cluster: [Production EU-West         ▼]               │    │
│  │  Mirror Stream Name:  [ORDERS_EU_MIRROR           ]                │    │
│  │                                                                     │    │
│  │  Storage Override (optional):                                       │    │
│  │    Replicas: [3 ▼]  Storage: [File ▼]  Max Bytes: [100GB    ]     │    │
│  │                                                                     │    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                                                                              │
│  Estimated Initial Sync: ~45 minutes (based on 15.2M messages, 2.3GB)       │
│                                                                              │
│                                              [Back] [Next: Review] [Cancel] │
└─────────────────────────────────────────────────────────────────────────────┘


CROSS-CLUSTER REPLICATION MAP
─────────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Replication Topology                                        [+ Add Mirror] │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │     US-EAST (Primary)              US-WEST (DR)                        ││
│  │     ┌─────────────────┐           ┌─────────────────┐                  ││
│  │     │    ORDERS       │──────────►│ ORDERS_MIRROR   │                  ││
│  │     │    15.2M msgs   │  Mirror   │ 15.2M msgs      │                  ││
│  │     │    ● In Sync    │  Lag: 0   │ ● In Sync       │                  ││
│  │     └─────────────────┘           └─────────────────┘                  ││
│  │            │                                                            ││
│  │            │ Mirror                                                     ││
│  │            │ Lag: 234                                                   ││
│  │            ▼                                                            ││
│  │     ┌─────────────────┐                                                ││
│  │     │ EU-WEST (Edge)  │                                                ││
│  │     ├─────────────────┤                                                ││
│  │     │ ORDERS_EU       │                                                ││
│  │     │ 15.1M msgs      │                                                ││
│  │     │ ⚠️ Lag: 234     │                                                ││
│  │     └─────────────────┘                                                ││
│  │            │                                                            ││
│  │            │ Source                                                     ││
│  │            ▼                                                            ││
│  │     ┌─────────────────┐                                                ││
│  │     │ AP-SOUTH (Edge) │                                                ││
│  │     ├─────────────────┤                                                ││
│  │     │ ORDERS_APAC     │                                                ││
│  │     │ 8.5M msgs       │  (Filtered: orders.*.ap-*)                     ││
│  │     │ ● In Sync       │                                                ││
│  │     └─────────────────┘                                                ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Replication Health Summary                                                  │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Mirror                    │ Lag      │ Rate    │ Status   │ Actions   ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  ORDERS → US-WEST          │ 0        │ 1.2K/s  │ ● Sync   │ [Pause]   ││
│  │  ORDERS → EU-WEST          │ 234      │ 1.1K/s  │ ⚠️ Behind │ [Catch Up]││
│  │  ORDERS → AP-SOUTH         │ 0        │ 450/s   │ ● Sync   │ [Pause]   ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

4. Schema Registry & Data Governance

4.1 Schema Registry Integration

┌─────────────────────────────────────────────────────────────────────────────┐
│                         SCHEMA REGISTRY SYSTEM                               │
└─────────────────────────────────────────────────────────────────────────────┘

ARCHITECTURE
────────────

┌──────────────────────────────────────────────────────────────────────────────┐
│                                                                              │
│    Producers                 Schema Registry              Consumers          │
│    ┌──────────┐             ┌──────────────┐            ┌──────────┐        │
│    │ Service A│─validate───►│              │◄──fetch────│ Service X│        │
│    └──────────┘             │   PostgreSQL │            └──────────┘        │
│    ┌──────────┐             │   (Schemas)  │            ┌──────────┐        │
│    │ Service B│─validate───►│              │◄──fetch────│ Service Y│        │
│    └──────────┘             │   Redis      │            └──────────┘        │
│                             │   (Cache)    │                                 │
│                             └──────┬───────┘                                │
│                                    │                                         │
│                    ┌───────────────┼───────────────┐                        │
│                    │               │               │                        │
│                    ▼               ▼               ▼                        │
│             ┌──────────┐    ┌──────────┐    ┌──────────┐                   │
│             │  Avro    │    │  JSON    │    │ Protobuf │                   │
│             │ Schemas  │    │ Schemas  │    │ Schemas  │                   │
│             └──────────┘    └──────────┘    └──────────┘                   │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘


SCHEMA BROWSER UI
─────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Schema Registry                                            [+ New Schema]  │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  [Schemas] [Subjects] [Compatibility] [Validation Rules]                    │
│  ══════════════════════════════════════════════════════════════════════════ │
│                                                                              │
│  Search: [_________________________]  Type: [All ▼]  Format: [All ▼]       │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Schema Name              │ Format   │ Version │ Subjects │ Compat     ││
│  ├───────────────────────────┼──────────┼─────────┼──────────┼────────────┤│
│  │ 📋 Order                  │ Avro     │ v3      │ 4        │ BACKWARD   ││
│  │    io.acme.orders.Order   │          │         │          │            ││
│  ├───────────────────────────┼──────────┼─────────┼──────────┼────────────┤│
│  │ 📋 OrderCreatedEvent      │ JSON     │ v2      │ 2        │ FORWARD    ││
│  │    orders.created         │          │         │          │            ││
│  ├───────────────────────────┼──────────┼─────────┼──────────┼────────────┤│
│  │ 📋 Customer               │ Protobuf │ v5      │ 3        │ FULL       ││
│  │    acme.customers.v1      │          │         │          │            ││
│  ├───────────────────────────┼──────────┼─────────┼──────────┼────────────┤│
│  │ 📋 PaymentEvent           │ Avro     │ v1      │ 1        │ NONE       ││
│  │    io.acme.payments       │          │         │          │            ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Showing 4 of 24 schemas                                                     │
└─────────────────────────────────────────────────────────────────────────────┘


SCHEMA DETAIL VIEW
──────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Schema: Order (io.acme.orders.Order)                                        │
│  Type: Avro │ Version: 3 │ Compatibility: BACKWARD                          │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  [Definition] [Versions] [Subjects] [Lineage] [Validation]                  │
│  ══════════════════════════════════════════════════════════════════════════ │
│                                                                              │
│  Schema Definition                                      [Edit] [Test] [⬇️]  │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  {                                                                      ││
│  │    "type": "record",                                                    ││
│  │    "name": "Order",                                                     ││
│  │    "namespace": "io.acme.orders",                                       ││
│  │    "doc": "Represents a customer order",                                ││
│  │    "fields": [                                                          ││
│  │      {                                                                  ││
│  │        "name": "order_id",                                              ││
│  │        "type": "string",                                                ││
│  │        "doc": "Unique order identifier"                                 ││
│  │      },                                                                 ││
│  │      {                                                                  ││
│  │        "name": "customer_id",                                           ││
│  │        "type": "string"                                                 ││
│  │      },                                                                 ││
│  │      {                                                                  ││
│  │        "name": "amount",                                                ││
│  │        "type": {                                                        ││
│  │          "type": "bytes",                                               ││
│  │          "logicalType": "decimal",                                      ││
│  │          "precision": 10,                                               ││
│  │          "scale": 2                                                     ││
│  │        }                                                                ││
│  │      },                                                                 ││
│  │      {                                                                  ││
│  │        "name": "status",                                                ││
│  │        "type": {                                                        ││
│  │          "type": "enum",                                                ││
│  │          "name": "OrderStatus",                                         ││
│  │          "symbols": ["PENDING", "CONFIRMED", "SHIPPED", "DELIVERED"]    ││
│  │        }                                                                ││
│  │      },                                                                 ││
│  │      {                                                                  ││
│  │        "name": "metadata",                                              ││
│  │        "type": ["null", {"type": "map", "values": "string"}],          ││
│  │        "default": null                                                  ││
│  │      }                                                                  ││
│  │    ]                                                                    ││
│  │  }                                                                      ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Version History                                                             │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  v3 (current)  │ 2024-01-15 │ Added metadata field       │ [View Diff] ││
│  │  v2            │ 2024-01-08 │ Added DELIVERED status     │ [View Diff] ││
│  │  v1            │ 2024-01-01 │ Initial schema             │ [View]      ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Associated Subjects                                                         │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  • orders.created.>     (Stream: ORDERS)                                ││
│  │  • orders.updated.>     (Stream: ORDERS)                                ││
│  │  • orders.archived.*    (Stream: ORDERS_ARCHIVE)                        ││
│  │  • orders-dlq.*         (Stream: ORDERS_DLQ)                            ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘


SCHEMA EVOLUTION & COMPATIBILITY
────────────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Schema Compatibility Check                                                  │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  New Schema Version (v4)                                                     │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  + Added field: "shipping_address" (optional, with default)             ││
│  │  + Added enum value: "CANCELLED" to OrderStatus                         ││
│  │  ~ Changed field "metadata": added "source" to default map              ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Compatibility Results                                                       │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Mode: BACKWARD                                                         ││
│  │  Status: ● Compatible                                                   ││
│  │                                                                         ││
│  │  Checks:                                                                ││
│  │  ✅ New optional fields have defaults                                   ││
│  │  ✅ No required fields removed                                          ││
│  │  ✅ Field types unchanged                                               ││
│  │  ✅ Enum values only added (not removed)                                ││
│  │                                                                         ││
│  │  Consumer Impact Analysis:                                              ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  order-processor (v3)      │ ● Compatible   │ No action needed   │ ││
│  │  │  analytics-worker (v2)     │ ● Compatible   │ No action needed   │ ││
│  │  │  legacy-system (v1)        │ ⚠️ Degraded    │ Unknown fields     │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│                                        [Cancel] [Register as v4]            │
└─────────────────────────────────────────────────────────────────────────────┘

4.2 Data Quality & Validation

┌─────────────────────────────────────────────────────────────────────────────┐
│                      DATA QUALITY RULES ENGINE                               │
└─────────────────────────────────────────────────────────────────────────────┘

VALIDATION RULES CONFIGURATION
──────────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Data Quality Rules: ORDERS Stream                          [+ Add Rule]    │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  Enforcement Mode: [Warn and Log ▼]  (Reject / Warn and Log / Log Only)    │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Rule 1: Order ID Format                               [Enabled] [Edit] ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Field: order_id                                                        ││
│  │  Type: Pattern Match                                                    ││
│  │  Pattern: ^ORD-[0-9]{4}-[A-Z0-9]{8}$                                    ││
│  │  On Failure: Reject                                                     ││
│  │  Stats: 99.8% pass rate │ 234 failures today                           ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Rule 2: Amount Validation                             [Enabled] [Edit] ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Field: amount                                                          ││
│  │  Type: Range Check                                                      ││
│  │  Condition: amount > 0 AND amount < 1000000                             ││
│  │  On Failure: Warn                                                       ││
│  │  Stats: 99.99% pass rate │ 12 warnings today                           ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Rule 3: Required Fields                               [Enabled] [Edit] ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Type: Null Check                                                       ││
│  │  Fields: [order_id, customer_id, amount, status]                        ││
│  │  On Failure: Reject                                                     ││
│  │  Stats: 100% pass rate │ 0 failures today                              ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Rule 4: Customer Exists                               [Enabled] [Edit] ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Type: Lookup Validation                                                ││
│  │  Field: customer_id                                                     ││
│  │  Lookup: KV Store "customers" key exists                                ││
│  │  On Failure: Warn (async check)                                         ││
│  │  Stats: 98.5% pass rate │ 1,523 warnings today                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Rule 5: Duplicate Detection                           [Enabled] [Edit] ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Type: Deduplication                                                    ││
│  │  Key: order_id                                                          ││
│  │  Window: 5 minutes                                                      ││
│  │  On Duplicate: Reject (idempotent)                                      ││
│  │  Stats: 0.1% duplicates detected │ 89 rejected today                   ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Data Quality Dashboard                                                      │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Overall Quality Score: 98.7%                     [View Details]        ││
│  │                                                                         ││
│  │  100% ┤████████████████████████████████████████████████████████        ││
│  │       │                        ╭────────╮                               ││
│  │   95% ┤                   ╭────╯        ╰────╮                          ││
│  │       │              ╭────╯                  ╰────╮                     ││
│  │   90% ┼──────────────╯                            ╰─────────────        ││
│  │       └──────────────────────────────────────────────────────────       ││
│  │         Mon     Tue     Wed     Thu     Fri     Sat     Sun             ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

5. Stream Processing & Transforms

5.1 Real-Time Transforms

┌─────────────────────────────────────────────────────────────────────────────┐
│                      STREAM TRANSFORMS ENGINE                                │
└─────────────────────────────────────────────────────────────────────────────┘

TRANSFORM PIPELINE ARCHITECTURE
───────────────────────────────

┌──────────────────────────────────────────────────────────────────────────────┐
│                                                                              │
│   Source Stream              Transform Engine           Destination          │
│   ┌──────────────┐          ┌──────────────┐          ┌──────────────┐      │
│   │   ORDERS     │─────────►│  WASM/JS     │─────────►│  ORDERS_     │      │
│   │              │          │  Runtime     │          │  ENRICHED    │      │
│   │  Raw Events  │          │              │          │              │      │
│   └──────────────┘          │  Functions:  │          │  Processed   │      │
│                             │  • Map       │          │  Events      │      │
│                             │  • Filter    │          └──────────────┘      │
│                             │  • Enrich    │                                 │
│                             │  • Aggregate │                                 │
│                             └──────────────┘                                 │
│                                    │                                         │
│                                    ▼                                         │
│                             ┌──────────────┐                                │
│                             │  ClickHouse  │                                │
│                             │  (Metrics)   │                                │
│                             └──────────────┘                                │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘


TRANSFORM FUNCTIONS LIBRARY
───────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Transform Functions                                      [+ Create New]    │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  [Built-in] [Custom] [Community]                                            │
│                                                                              │
│  Built-in Transforms                                                         │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  📦 JSON Path Extract                                                   ││
│  │     Extract and reshape JSON fields                                     ││
│  │     Example: $.order.items[*].sku → flat array of SKUs                  ││
│  │                                                                         ││
│  │  📦 Field Rename/Remove                                                 ││
│  │     Rename, remove, or reorder fields                                   ││
│  │     Example: customer_id → customerId, remove internal_id              ││
│  │                                                                         ││
│  │  📦 Type Coercion                                                       ││
│  │     Convert field types                                                 ││
│  │     Example: string "123.45" → decimal 123.45                          ││
│  │                                                                         ││
│  │  📦 Timestamp Transform                                                 ││
│  │     Parse, format, or convert timestamps                                ││
│  │     Example: Unix epoch → ISO 8601                                     ││
│  │                                                                         ││
│  │  📦 Hash/Mask                                                           ││
│  │     Hash or mask sensitive data                                         ││
│  │     Example: email → SHA256, credit_card → ****1234                    ││
│  │                                                                         ││
│  │  📦 Lookup Enrichment                                                   ││
│  │     Enrich from KV store or external API                                ││
│  │     Example: customer_id → full customer record                        ││
│  │                                                                         ││
│  │  📦 Aggregate Window                                                    ││
│  │     Time-window aggregations                                            ││
│  │     Example: 5-min tumbling window count by region                     ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Custom Transforms (JavaScript)                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  🔧 order-enrichment           v1.2.0        Active on 3 streams       ││
│  │     Adds customer tier and discount calculation                        ││
│  │                                                              [Edit]     ││
│  │                                                                         ││
│  │  🔧 pii-redaction              v2.0.0        Active on 5 streams       ││
│  │     Removes/masks PII fields for analytics streams                     ││
│  │                                                              [Edit]     ││
│  │                                                                         ││
│  │  🔧 geo-enrichment             v1.0.1        Active on 2 streams       ││
│  │     Adds geolocation data from IP addresses                            ││
│  │                                                              [Edit]     ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘


TRANSFORM EDITOR
────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Transform: order-enrichment                    [Save] [Test] [Deploy]      │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  Runtime: [JavaScript (V8) ▼]    Timeout: [5000   ] ms                      │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  // Transform function receives message and context                     ││
│  │  // Returns transformed message or null to filter                       ││
│  │                                                                         ││
│  │  export default async function transform(msg, ctx) {                    ││
│  │    // Access message data                                               ││
│  │    const order = msg.data;                                              ││
│  │                                                                         ││
│  │    // Lookup customer from KV store                                     ││
│  │    const customer = await ctx.kv.get('customers', order.customer_id);   ││
│  │                                                                         ││
│  │    // Calculate discount based on customer tier                         ││
│  │    const discount = calculateDiscount(customer?.tier, order.amount);    ││
│  │                                                                         ││
│  │    // Return enriched message                                           ││
│  │    return {                                                             ││
│  │      ...msg,                                                            ││
│  │      data: {                                                            ││
│  │        ...order,                                                        ││
│  │        customer_tier: customer?.tier || 'standard',                     ││
│  │        discount_amount: discount,                                       ││
│  │        final_amount: order.amount - discount,                           ││
│  │        enriched_at: new Date().toISOString()                            ││
│  │      }                                                                  ││
│  │    };                                                                   ││
│  │  }                                                                      ││
│  │                                                                         ││
│  │  function calculateDiscount(tier, amount) {                             ││
│  │    const rates = { platinum: 0.15, gold: 0.10, silver: 0.05 };         ││
│  │    return amount * (rates[tier] || 0);                                  ││
│  │  }                                                                      ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Test Input                                          Test Output             │
│  ┌─────────────────────────────────┐  ┌─────────────────────────────────┐  │
│  │ {                               │  │ {                               │  │
│  │   "order_id": "ORD-123",        │  │   "order_id": "ORD-123",        │  │
│  │   "customer_id": "CUST-456",    │  │   "customer_id": "CUST-456",    │  │
│  │   "amount": 500.00              │  │   "amount": 500.00,             │  │
│  │ }                               │  │   "customer_tier": "gold",      │  │
│  │                                 │  │   "discount_amount": 50.00,     │  │
│  │                                 │  │   "final_amount": 450.00,       │  │
│  │                                 │  │   "enriched_at": "2024-01..."   │  │
│  │                                 │  │ }                               │  │
│  └─────────────────────────────────┘  └─────────────────────────────────┘  │
│                                                                              │
│  ● Test passed (23ms)                                                        │
└─────────────────────────────────────────────────────────────────────────────┘

5.2 Aggregation & Analytics Pipelines

┌─────────────────────────────────────────────────────────────────────────────┐
│                     REAL-TIME AGGREGATION ENGINE                             │
└─────────────────────────────────────────────────────────────────────────────┘

AGGREGATION PIPELINE BUILDER
────────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Aggregation Pipeline: Order Metrics                    [Save] [Activate]   │
│  ─────────────────────────────────────────────────────────────────────────  │
│                                                                              │
│  Source: ORDERS stream │ Subject: orders.completed.>                        │
│                                                                              │
│  Pipeline Definition                                                         │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  WINDOW CONFIGURATION                                                   ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Window Type: [Tumbling ▼]    Size: [5    ] [minutes ▼]          │ ││
│  │  │                                                                   │ ││
│  │  │  ○ Tumbling (fixed, non-overlapping)                              │ ││
│  │  │  ○ Sliding (overlapping windows)                                  │ ││
│  │  │  ○ Session (activity-based)                                       │ ││
│  │  │                                                                   │ ││
│  │  │  Late Arrival Tolerance: [1    ] [minutes ▼]                     │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  │  GROUP BY                                                               ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Fields:                                                          │ ││
│  │  │    [✓] $.region                                                   │ ││
│  │  │    [✓] $.product_category                                         │ ││
│  │  │    [ ] $.customer_tier                                            │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  │  AGGREGATIONS                                                           ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Output Field      │ Function    │ Source Field                  │ ││
│  │  │  ─────────────────────────────────────────────────────────────── │ ││
│  │  │  order_count       │ COUNT       │ *                              │ ││
│  │  │  total_revenue     │ SUM         │ $.amount                       │ ││
│  │  │  avg_order_value   │ AVG         │ $.amount                       │ ││
│  │  │  max_order_value   │ MAX         │ $.amount                       │ ││
│  │  │  unique_customers  │ COUNT_DIST  │ $.customer_id                  │ ││
│  │  │  top_products      │ TOP_K(10)   │ $.items[*].sku                │ ││
│  │  │                                                          [+ Add] │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  │  OUTPUT                                                                 ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  [✓] Publish to Stream: ORDER_METRICS                            │ ││
│  │  │      Subject: metrics.orders.{region}.{product_category}          │ ││
│  │  │                                                                   │ ││
│  │  │  [✓] Write to ClickHouse: order_metrics_5min                     │ ││
│  │  │                                                                   │ ││
│  │  │  [✓] Update KV Store: order_realtime_stats                       │ ││
│  │  │      Key: stats:{region}:{product_category}                       │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Pipeline Preview (Sample Output)                                            │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  {                                                                      ││
│  │    "window_start": "2024-01-15T10:30:00Z",                              ││
│  │    "window_end": "2024-01-15T10:35:00Z",                                ││
│  │    "region": "us-east",                                                 ││
│  │    "product_category": "electronics",                                   ││
│  │    "order_count": 1234,                                                 ││
│  │    "total_revenue": 156789.50,                                          ││
│  │    "avg_order_value": 127.05,                                           ││
│  │    "max_order_value": 2499.99,                                          ││
│  │    "unique_customers": 987,                                             ││
│  │    "top_products": ["SKU-001", "SKU-042", "SKU-108", ...]              ││
│  │  }                                                                      ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

6. AI-Powered Features

6.1 AI Assistant & Copilot

┌─────────────────────────────────────────────────────────────────────────────┐
│                         AI ASSISTANT ARCHITECTURE                            │
└─────────────────────────────────────────────────────────────────────────────┘

SYSTEM ARCHITECTURE
───────────────────

┌──────────────────────────────────────────────────────────────────────────────┐
│                                                                              │
│    User Interface                 AI Backend                  Data Sources   │
│    ┌──────────────┐              ┌──────────────┐           ┌──────────────┐│
│    │              │              │              │           │  Stream      ││
│    │  Chat UI     │─────────────►│  AI Gateway  │◄─────────►│  Metadata    ││
│    │              │              │              │           │              ││
│    │  Context     │              │  Claude API  │           │  Message     ││
│    │  Sidebar     │              │  Integration │◄─────────►│  Samples     ││
│    │              │              │              │           │              ││
│    │  Suggestions │◄─────────────│  RAG Engine  │◄─────────►│  Docs &      ││
│    │  Panel       │              │              │           │  Schemas     ││
│    │              │              │  Function    │           │              ││
│    └──────────────┘              │  Calling     │◄─────────►│  Metrics &   ││
│                                  │              │           │  Analytics   ││
│                                  └──────────────┘           └──────────────┘│
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘


AI CHAT INTERFACE
─────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  NATS Console AI Assistant                                    [⚙️] [×]      │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  👤 User                                                     10:45 AM   ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Why is my order-processor consumer lagging? It was fine yesterday.    ││
│  │                                                                         ││
│  │  🤖 AI Assistant                                             10:45 AM   ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  I've analyzed the order-processor consumer and found several factors  ││
│  │  contributing to the lag increase:                                     ││
│  │                                                                         ││
│  │  📊 **Analysis Summary**                                                ││
│  │                                                                         ││
│  │  1. **Traffic Spike**: Message rate increased 3x at 9:15 AM            ││
│  │     • Yesterday avg: 450 msgs/sec                                      ││
│  │     • Today peak: 1,350 msgs/sec                                       ││
│  │                                                                         ││
│  │  2. **Processing Slowdown**: Avg processing time increased             ││
│  │     • Yesterday: 45ms/msg                                              ││
│  │     • Today: 180ms/msg (4x slower)                                     ││
│  │                                                                         ││
│  │  3. **Root Cause**: Database query latency spike                       ││
│  │     • CustomerDB p99 latency: 150ms → 520ms                            ││
│  │     • Correlates with increased error rate                             ││
│  │                                                                         ││
│  │  📋 **Recommended Actions**                                             ││
│  │                                                                         ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │ 1. Scale consumers from 3 to 6          [Apply]                   │ ││
│  │  │ 2. Enable consumer caching for customer lookups                   │ ││
│  │  │ 3. Add circuit breaker for CustomerDB                             │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  │  Would you like me to apply the scaling change now?                    ││
│  │                                                                         ││
│  │  👤 User                                                     10:46 AM   ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Yes, scale to 6 consumers and show me the impact                      ││
│  │                                                                         ││
│  │  🤖 AI Assistant                                             10:46 AM   ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  ✅ Scaling order-processor from 3 to 6 consumers...                   ││
│  │                                                                         ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Consumer Scaling Progress                                        │ ││
│  │  │  ████████████████████░░░░░░░░░░  65%                              │ ││
│  │  │  4/6 consumers active                                             │ ││
│  │  │  Lag recovering: 15,234 → 8,456 (-44%)                           │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Quick Actions:                                                              │
│  [Explain this stream] [Suggest optimizations] [Generate consumer config]   │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Ask anything about your streams, consumers, or messages...       [↵]  ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘


AI CAPABILITIES MATRIX
──────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│                         AI FEATURE CAPABILITIES                              │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  NATURAL LANGUAGE QUERIES                                                    │
│  ────────────────────────                                                    │
│  • "Show me streams with highest throughput"                                 │
│  • "Which consumers have been failing?"                                      │
│  • "What happened to ORDERS stream yesterday at 3pm?"                        │
│  • "Find messages containing error from last hour"                           │
│  • "Compare performance between prod and staging"                            │
│                                                                              │
│  INTELLIGENT DIAGNOSTICS                                                     │
│  ────────────────────────                                                    │
│  • Root cause analysis for lag/failures                                      │
│  • Correlation detection across metrics                                      │
│  • Anomaly explanation                                                       │
│  • Performance bottleneck identification                                     │
│  • Predictive capacity planning                                              │
│                                                                              │
│  CONFIGURATION GENERATION                                                    │
│  ────────────────────────                                                    │
│  • Stream config from requirements description                               │
│  • Consumer setup recommendations                                            │
│  • Workflow pipeline generation                                              │
│  • Schema inference from sample messages                                     │
│  • Alert rule suggestions                                                    │
│                                                                              │
│  AUTOMATED ACTIONS                                                           │
│  ─────────────────                                                           │
│  • One-click fixes with preview                                              │
│  • Safe rollback options                                                     │
│  • Approval workflow for sensitive ops                                       │
│  • Change impact analysis                                                    │
│                                                                              │
│  LEARNING & CONTEXT                                                          │
│  ─────────────────                                                           │
│  • Remembers user preferences                                                │
│  • Learns from organization patterns                                         │
│  • Context-aware suggestions                                                 │
│  • Documentation integration                                                 │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

6.2 AI-Powered Insights & Anomaly Detection

┌─────────────────────────────────────────────────────────────────────────────┐
│                      AI INSIGHTS DASHBOARD                                   │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  AI Insights                                          [Configure] [Refresh] │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  🎯 Active Anomalies                                                         │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  🔴 CRITICAL: Unusual Traffic Pattern Detected                10:32 AM ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Stream: ORDERS                                                   │ ││
│  │  │  Anomaly: Message rate 5x higher than historical average          │ ││
│  │  │  Pattern: Sudden spike, not gradual increase                      │ ││
│  │  │  Possible Causes:                                                 │ ││
│  │  │    • Flash sale or promotional event (85% confidence)             │ ││
│  │  │    • Client retry storm (10% confidence)                          │ ││
│  │  │    • Data replay/migration (5% confidence)                        │ ││
│  │  │                                                                   │ ││
│  │  │  Impact: Consumer lag increasing, storage filling faster          │ ││
│  │  │  AI Recommendation: Scale consumers + extend retention            │ ││
│  │  │                                                                   │ ││
│  │  │  [View Details] [Apply Recommendation] [Acknowledge] [Snooze]    │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  │  ⚠️ WARNING: Schema Drift Detected                           9:15 AM   ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Stream: EVENTS                                                   │ ││
│  │  │  Detection: 12% of messages don't match registered schema         │ ││
│  │  │  New fields found: ["device_os", "app_version", "experiment_id"] │ ││
│  │  │  Source: events.mobile.> subjects (mobile app v3.2.0)            │ ││
│  │  │                                                                   │ ││
│  │  │  AI Recommendation: Update schema to v4 with optional fields      │ ││
│  │  │                                                                   │ ││
│  │  │  [View Schema Diff] [Auto-Generate Schema] [Acknowledge]          │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  💡 Optimization Suggestions                                                 │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  📊 Stream: AUDIT_LOG                               Potential: High    ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Observation: Stream has 95% read-to-write ratio                  │ ││
│  │  │  Current: 3 replicas, file storage                                │ ││
│  │  │                                                                   │ ││
│  │  │  Recommendation: Add read replicas for better read performance    │ ││
│  │  │  Expected Impact: 40% reduction in read latency                   │ ││
│  │  │  Estimated Cost: +$50/month (additional storage)                  │ ││
│  │  │                                                                   │ ││
│  │  │  [Apply] [Schedule] [Dismiss]                                    │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  │  📊 Consumer: notification-sender                    Potential: Medium ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Observation: Consumer processes 1 message at a time              │ ││
│  │  │  Current: batch_size=1, max_ack_pending=1                        │ ││
│  │  │                                                                   │ ││
│  │  │  Recommendation: Enable batch processing                          │ ││
│  │  │  Suggested Config: batch_size=100, max_ack_pending=500           │ ││
│  │  │  Expected Impact: 10x throughput improvement                      │ ││
│  │  │                                                                   │ ││
│  │  │  [Apply] [Test First] [Dismiss]                                  │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  🔮 Predictive Analysis                                                      │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Capacity Forecast (Next 30 Days)                                       ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │                                                                   │ ││
│  │  │  Stream: ORDERS                                                   │ ││
│  │  │                                                                   │ ││
│  │  │  Storage Usage Prediction:                                        │ ││
│  │  │  100% ┤                                         ╭─────────────── │ ││
│  │  │      │                                   ╭──────╯  Projected     │ ││
│  │  │   75% ┤                            ╭─────╯                        │ ││
│  │  │      │                      ╭──────╯                              │ ││
│  │  │   50% ┼───────────────╭─────╯                                     │ ││
│  │  │      │          ╭─────╯ Current                                   │ ││
│  │  │   25% ┤    ╭────╯                                                 │ ││
│  │  │      └────╯─────────────────────────────────────────────────────  │ ││
│  │  │        Now     +7d      +14d      +21d      +30d                  │ ││
│  │  │                                                                   │ ││
│  │  │  ⚠️ Alert: Storage limit (100GB) will be reached in ~18 days     │ ││
│  │  │                                                                   │ ││
│  │  │  Recommendations:                                                 │ ││
│  │  │  1. Increase maxBytes to 200GB                                   │ ││
│  │  │  2. Reduce retention from 30d to 14d                             │ ││
│  │  │  3. Enable compression (est. 40% reduction)                       │ ││
│  │  │                                                                   │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

6.3 AI Message Analysis

┌─────────────────────────────────────────────────────────────────────────────┐
│                      AI MESSAGE ANALYZER                                     │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  Message Analysis: ORDERS Stream                              [🤖 AI Mode]  │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  [Structure Analysis] [Content Patterns] [Anomaly Detection] [Search]       │
│  ══════════════════════════════════════════════════════════════════════════ │
│                                                                              │
│  AI-Inferred Schema                                                          │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Based on analysis of 10,000 sample messages:                           ││
│  │                                                                         ││
│  │  {                                                                      ││
│  │    "order_id": "string (pattern: ORD-\\d{4}-[A-Z0-9]{8})",             ││
│  │    "customer_id": "string (UUID format)",                               ││
│  │    "amount": "number (range: 0.01 - 99999.99)",                        ││
│  │    "currency": "string (enum: USD, EUR, GBP, JPY)",                    ││
│  │    "status": "string (enum: pending, confirmed, shipped, delivered)",  ││
│  │    "items": [{                                                          ││
│  │      "sku": "string (pattern: SKU-\\d{3})",                            ││
│  │      "quantity": "integer (range: 1 - 100)",                           ││
│  │      "price": "number"                                                  ││
│  │    }],                                                                  ││
│  │    "metadata": {                                                        ││
│  │      "source": "string (enum: web, mobile, api)",                      ││
│  │      "ip_address": "string (IP format, nullable)",                     ││
│  │      "user_agent": "string (nullable)"                                 ││
│  │    },                                                                   ││
│  │    "created_at": "string (ISO 8601 datetime)"                          ││
│  │  }                                                                      ││
│  │                                                                         ││
│  │  Confidence: 98.5%                                                      ││
│  │  Coverage: 99.2% of messages match this schema                         ││
│  │                                                                         ││
│  │  [Register as Schema] [Export Avro] [Export JSON Schema]               ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Content Pattern Analysis                                                    │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Field Distribution Analysis                                            ││
│  │  ───────────────────────────────────────────────────────────────────── ││
│  │                                                                         ││
│  │  currency:                           source:                            ││
│  │  ┌────────────────────────┐         ┌────────────────────────┐         ││
│  │  │ USD  ██████████████ 65%│         │ web    █████████████ 58%│         ││
│  │  │ EUR  █████░░░░░░░░ 22%│         │ mobile ██████░░░░░░ 32%│         ││
│  │  │ GBP  ██░░░░░░░░░░░ 8% │         │ api    ██░░░░░░░░░░ 10%│         ││
│  │  │ JPY  █░░░░░░░░░░░░ 5% │         └────────────────────────┘         ││
│  │  └────────────────────────┘                                             ││
│  │                                                                         ││
│  │  Amount Distribution:                                                   ││
│  │  ┌────────────────────────────────────────────────────────────────┐    ││
│  │  │     │       ╭──╮                                                │    ││
│  │  │     │   ╭───╯  ╰──╮                                             │    ││
│  │  │     │ ╭─╯        ╰───╮                                          │    ││
│  │  │     ├─╯              ╰────╮                                     │    ││
│  │  │     │                     ╰───────────────────────────────────  │    ││
│  │  │     └─────────────────────────────────────────────────────────  │    ││
│  │  │     $0     $50    $100   $200   $500   $1000  $5000+             │    ││
│  │  │                                                                 │    ││
│  │  │  Mean: $127.45 │ Median: $85.00 │ P95: $450.00 │ P99: $1,200   │    ││
│  │  └────────────────────────────────────────────────────────────────┘    ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Natural Language Search                                                     │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Search: [Find orders over $500 from mobile with shipping errors  ]    ││
│  │                                                                         ││
│  │  AI-Generated Query:                                                    ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  $.amount > 500                                                   │ ││
│  │  │  AND $.metadata.source = 'mobile'                                 │ ││
│  │  │  AND $.status = 'error'                                           │ ││
│  │  │  AND $.error_type CONTAINS 'shipping'                             │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  │  Results: 234 messages found                         [Execute Search]  ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

6.4 AI Query Generator

┌─────────────────────────────────────────────────────────────────────────────┐
│                      AI QUERY & CONFIG GENERATOR                             │
└─────────────────────────────────────────────────────────────────────────────┘

NATURAL LANGUAGE TO CONFIG
──────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  AI Configuration Generator                                                  │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Describe what you want to create:                                           │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  I need a stream for storing user activity events. It should keep      ││
│  │  events for 30 days, handle about 10,000 events per second, and be     ││
│  │  highly available. Events should be partitioned by user_id for         ││
│  │  ordering. I also need a consumer that processes events in batches     ││
│  │  of 100 with at-least-once delivery.                                   ││
│  │                                                                         ││
│  │                                                               [Generate]││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Generated Configuration                                                     │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Stream: USER_ACTIVITY                                                  ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │                                                                         ││
│  │  // AI Explanation:                                                     ││
│  │  // - File storage for durability at high volume                       ││
│  │  // - 3 replicas for high availability                                 ││
│  │  // - maxMsgsPerSubject limits per-user storage                        ││
│  │  // - S2 compression for 40-60% storage savings                        ││
│  │                                                                         ││
│  │  {                                                                      ││
│  │    "name": "USER_ACTIVITY",                                             ││
│  │    "subjects": ["activity.>"],                                          ││
│  │    "retention": "limits",                                               ││
│  │    "storage": "file",                                                   ││
│  │    "maxAge": "720h",              // 30 days                           ││
│  │    "maxBytes": 500000000000,      // 500GB for ~10K/sec                ││
│  │    "maxMsgsPerSubject": 1000000,  // Per user_id limit                 ││
│  │    "replicas": 3,                                                       ││
│  │    "compression": "s2",                                                 ││
│  │    "discard": "old",                                                    ││
│  │    "duplicateWindow": "120s",                                           ││
│  │    "placement": {                                                       ││
│  │      "tags": ["ssd", "high-iops"]                                      ││
│  │    }                                                                    ││
│  │  }                                                                      ││
│  │                                                                         ││
│  │  Consumer: activity-processor                                           ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │                                                                         ││
│  │  // AI Explanation:                                                     ││
│  │  // - Pull-based for batch processing                                  ││
│  │  // - max_batch: 100 as requested                                      ││
│  │  // - ack_wait: 30s for batch processing time                          ││
│  │  // - max_deliver: 5 for at-least-once with retries                    ││
│  │                                                                         ││
│  │  {                                                                      ││
│  │    "name": "activity-processor",                                        ││
│  │    "durable_name": "activity-processor",                                ││
│  │    "deliver_policy": "all",                                             ││
│  │    "ack_policy": "explicit",                                            ││
│  │    "ack_wait": "30s",                                                   ││
│  │    "max_deliver": 5,                                                    ││
│  │    "max_ack_pending": 1000,                                             ││
│  │    "max_batch": 100,                                                    ││
│  │    "max_waiting": 512                                                   ││
│  │  }                                                                      ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Estimated Resources                                                         │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Storage (30 days): ~350 GB (with compression)                         ││
│  │  Memory: ~2 GB per replica for indexes                                 ││
│  │  Bandwidth: ~50 MB/sec sustained                                       ││
│  │  Cost Estimate: ~$150/month (based on current cluster pricing)         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  [Edit Config] [Create Stream & Consumer] [Save as Template] [Export]       │
└─────────────────────────────────────────────────────────────────────────────┘

7. Self-Service Portal & Quotas

7.1 Team Self-Service

┌─────────────────────────────────────────────────────────────────────────────┐
│                      SELF-SERVICE PORTAL                                     │
└─────────────────────────────────────────────────────────────────────────────┘

NAMESPACE / TEAM MANAGEMENT
───────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Team: Payments Engineering                                      [Settings] │
│  Namespace: payments-*                                                       │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  [Overview] [Streams] [Consumers] [Quotas] [Members] [Audit Log]            │
│  ══════════════════════════════════════════════════════════════════════════ │
│                                                                              │
│  Resource Usage                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Streams                    Storage                  Messages           ││
│  │  ┌───────────────────┐     ┌───────────────────┐   ┌─────────────────┐ ││
│  │  │      8 / 15       │     │    45 GB / 100 GB │   │ 125M / 500M     │ ││
│  │  │  ████████░░░░░░░  │     │  ████████░░░░░░░  │   │ █████░░░░░░░░░  │ ││
│  │  │       53%         │     │       45%         │   │     25%         │ ││
│  │  └───────────────────┘     └───────────────────┘   └─────────────────┘ ││
│  │                                                                         ││
│  │  Consumers                  Throughput (In)         Throughput (Out)    ││
│  │  ┌───────────────────┐     ┌───────────────────┐   ┌─────────────────┐ ││
│  │  │     24 / 50       │     │ 5K/s / 10K/s      │   │ 8K/s / 20K/s    │ ││
│  │  │  █████████░░░░░░  │     │  █████████░░░░░░  │   │ ████████░░░░░░  │ ││
│  │  │       48%         │     │       50%         │   │     40%         │ ││
│  │  └───────────────────┘     └───────────────────┘   └─────────────────┘ ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  My Resources                                                   [+ Create]  │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Stream               │ Storage │ Consumers │ Rate    │ Status         ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  payments-transactions│ 23.4 GB │ 8         │ 2.3K/s  │ ● Active       ││
│  │  payments-refunds     │ 5.2 GB  │ 4         │ 450/s   │ ● Active       ││
│  │  payments-audit       │ 12.1 GB │ 2         │ 890/s   │ ● Active       ││
│  │  payments-dlq         │ 234 MB  │ 1         │ 12/s    │ ⚠️ Needs Review ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Quick Actions                                                               │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  [📦 New Stream]  [👤 Add Consumer]  [📊 View Metrics]  [📋 Templates]  ││
│  │                                                                         ││
│  │  [🔑 API Keys]    [📜 View Audit]    [📈 Request Quota]  [❓ Help]      ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘


QUOTA MANAGEMENT
────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Quota Management: Payments Engineering                                      │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Current Quotas                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Resource          │ Current │ Limit   │ Usage │ Status                ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Streams           │ 8       │ 15      │ 53%   │ ● OK                  ││
│  │  Consumers         │ 24      │ 50      │ 48%   │ ● OK                  ││
│  │  Total Storage     │ 45 GB   │ 100 GB  │ 45%   │ ● OK                  ││
│  │  Message Count     │ 125M    │ 500M    │ 25%   │ ● OK                  ││
│  │  Inbound Rate      │ 5K/s    │ 10K/s   │ 50%   │ ● OK                  ││
│  │  Outbound Rate     │ 8K/s    │ 20K/s   │ 40%   │ ● OK                  ││
│  │  Max Msg Size      │ -       │ 8 MB    │ -     │ ● OK                  ││
│  │  Replicas (max)    │ -       │ 3       │ -     │ ● OK                  ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Request Quota Increase                                                      │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Resource: [Storage            ▼]                                       ││
│  │  Current Limit: 100 GB                                                  ││
│  │  Requested Limit: [200         ] GB                                     ││
│  │                                                                         ││
│  │  Justification:                                                         ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  We're onboarding 3 new payment processors next month which will │ ││
│  │  │  increase our transaction volume by approximately 2x. Our        │ ││
│  │  │  current growth rate suggests we'll hit 100GB within 6 weeks.    │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  │  Estimated Cost Impact: +$25/month                                      ││
│  │  Approval Required: Platform Admin (auto-approved under 500GB)          ││
│  │                                                                         ││
│  │                                              [Cancel] [Submit Request]  ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Quota History                                                               │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  2024-01-10 │ Storage increased 50GB → 100GB │ Approved │ jane@acme    ││
│  │  2023-12-15 │ Streams increased 10 → 15      │ Approved │ platform-adm ││
│  │  2023-11-01 │ Initial allocation             │ Created  │ system       ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

7.2 Approval Workflows

┌─────────────────────────────────────────────────────────────────────────────┐
│                      APPROVAL WORKFLOW SYSTEM                                │
└─────────────────────────────────────────────────────────────────────────────┘

PENDING APPROVALS
─────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Approval Queue                                              [My Requests]  │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Pending Approvals (5)                                                       │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  🟡 Production Stream Creation                         Submitted 2h ago ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Requester: john.doe@acme.com (Payments Team)                     │ ││
│  │  │  Type: Create Stream                                              │ ││
│  │  │  Environment: Production                                          │ ││
│  │  │                                                                   │ ││
│  │  │  Request Details:                                                 │ ││
│  │  │  • Stream Name: payments-settlements                              │ ││
│  │  │  • Storage: 50GB, File-based, 3 replicas                         │ ││
│  │  │  • Retention: 90 days                                             │ ││
│  │  │  • Subjects: payments.settlements.>                               │ ││
│  │  │                                                                   │ ││
│  │  │  AI Risk Assessment: ● Low                                        │ ││
│  │  │  • Configuration follows team patterns                           │ ││
│  │  │  • Within quota limits                                            │ ││
│  │  │  • Similar to existing approved streams                           │ ││
│  │  │                                                                   │ ││
│  │  │  [View Full Config]                                               │ ││
│  │  │                                                                   │ ││
│  │  │  [Approve] [Approve with Changes] [Reject] [Request More Info]    │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  │  🟡 Quota Increase Request                            Submitted 1d ago  ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Requester: jane.smith@acme.com (Analytics Team)                  │ ││
│  │  │  Type: Quota Increase                                             │ ││
│  │  │                                                                   │ ││
│  │  │  Request Details:                                                 │ ││
│  │  │  • Resource: Total Storage                                        │ ││
│  │  │  • Current: 100 GB → Requested: 500 GB                           │ ││
│  │  │  • Justification: "New real-time analytics pipeline requires..."  │ ││
│  │  │                                                                   │ ││
│  │  │  AI Risk Assessment: ⚠️ Medium                                    │ ││
│  │  │  • 5x increase is significant                                    │ ││
│  │  │  • Cost impact: +$200/month                                      │ ││
│  │  │  • Recommend reviewing retention policies first                   │ ││
│  │  │                                                                   │ ││
│  │  │  [View Usage History] [View Cost Impact]                         │ ││
│  │  │                                                                   │ ││
│  │  │  [Approve] [Approve Partial (200GB)] [Reject] [Request Meeting]  │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘


POLICY CONFIGURATION
────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Approval Policies                                          [+ Add Policy]  │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Policy: Production Changes                           [Enabled] [Edit]  ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │                                                                         ││
│  │  Triggers:                                                              ││
│  │  • Any stream/consumer operation in production cluster                  ││
│  │  • Excludes: Read operations, message publishing                        ││
│  │                                                                         ││
│  │  Approval Requirements:                                                 ││
│  │  • 1 approval from: Platform Team OR Team Lead                          ││
│  │  • Auto-approve if: Change is < 10% of current limits                   ││
│  │  • Auto-reject if: Violates org security policies                       ││
│  │                                                                         ││
│  │  SLA: 4 hours (business hours)                                          ││
│  │  Escalation: After 8 hours → notify @platform-oncall                    ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Policy: Large Quota Requests                         [Enabled] [Edit]  ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │                                                                         ││
│  │  Triggers:                                                              ││
│  │  • Quota increase > 2x current limit                                    ││
│  │  • Storage increase > 100GB                                             ││
│  │  • Cost impact > $100/month                                             ││
│  │                                                                         ││
│  │  Approval Requirements:                                                 ││
│  │  • 1 approval from: Platform Admin                                      ││
│  │  • 1 approval from: Finance (if cost > $500/month)                      ││
│  │                                                                         ││
│  │  SLA: 24 hours                                                          ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Policy: Development Self-Service                     [Enabled] [Edit]  ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │                                                                         ││
│  │  Triggers:                                                              ││
│  │  • Any operation in development/staging clusters                        ││
│  │                                                                         ││
│  │  Approval Requirements:                                                 ││
│  │  • Auto-approve all requests within team quota                          ││
│  │  • Log for audit purposes                                               ││
│  │                                                                         ││
│  │  SLA: Immediate                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

8. GitOps & Infrastructure as Code

8.1 GitOps Integration

┌─────────────────────────────────────────────────────────────────────────────┐
│                         GITOPS INTEGRATION                                   │
└─────────────────────────────────────────────────────────────────────────────┘

GITOPS ARCHITECTURE
───────────────────

┌──────────────────────────────────────────────────────────────────────────────┐
│                                                                              │
│     Git Repository                NATS Console              NATS Cluster    │
│     ┌──────────────┐             ┌──────────────┐          ┌──────────────┐│
│     │              │ ───watch──► │   GitOps     │ ──sync─► │              ││
│     │   YAML/JSON  │             │   Controller │          │   JetStream  ││
│     │   Configs    │             │              │          │              ││
│     │              │ ◄───plan─── │   Drift      │ ◄──read─ │              ││
│     └──────────────┘             │   Detector   │          └──────────────┘│
│            │                     └──────────────┘                           │
│            │                            │                                    │
│     ┌──────▼──────┐              ┌──────▼──────┐                            │
│     │    CI/CD    │              │   Audit     │                            │
│     │  Pipeline   │              │   Log       │                            │
│     │             │              │             │                            │
│     │ • Validate  │              │ • Changes   │                            │
│     │ • Plan      │              │ • Diffs     │                            │
│     │ • Apply     │              │ • Approvals │                            │
│     └─────────────┘              └─────────────┘                            │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘


REPOSITORY STRUCTURE
────────────────────

nats-config/
├── environments/
│   ├── production/
│   │   ├── clusters/
│   │   │   ├── us-east.yaml
│   │   │   └── eu-west.yaml
│   │   ├── streams/
│   │   │   ├── orders.yaml
│   │   │   ├── events.yaml
│   │   │   └── audit.yaml
│   │   ├── consumers/
│   │   │   ├── order-processor.yaml
│   │   │   └── analytics-worker.yaml
│   │   └── policies/
│   │       ├── quotas.yaml
│   │       └── retention.yaml
│   ├── staging/
│   │   └── ...
│   └── development/
│       └── ...
├── schemas/
│   ├── order.avsc
│   ├── event.json
│   └── customer.proto
├── workflows/
│   ├── order-pipeline.yaml
│   └── analytics-pipeline.yaml
└── kustomization.yaml


CONFIGURATION FILE FORMAT
─────────────────────────

# streams/orders.yaml
apiVersion: nats.io/v1
kind: Stream
metadata:
  name: ORDERS
  namespace: payments
  labels:
    team: payments
    env: production
    tier: critical
spec:
  description: "Customer order events"
  subjects:
    - "orders.>"
  retention: limits
  storage: file
  maxBytes: 107374182400  # 100GB
  maxAge: 168h            # 7 days
  maxMsgSize: 8388608     # 8MB
  replicas: 3
  compression: s2
  discard: old
  duplicateWindow: 5m
  placement:
    tags:
      - ssd
      - us-east
  mirror: null
  sources: []
  
  # Schema enforcement
  schema:
    type: avro
    ref: schemas/order.avsc
    validation: strict
    
  # Consumers defined inline or separately
  consumers:
    - name: order-processor
      durableName: order-processor
      deliverPolicy: all
      ackPolicy: explicit
      ackWait: 30s
      maxDeliver: 5
      maxAckPending: 1000
      filterSubject: "orders.created.>"


GITOPS DASHBOARD
────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  GitOps: Infrastructure as Code                                              │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Repository: github.com/acme/nats-config                     [⟳ Sync Now]  │
│  Branch: main │ Last sync: 5 min ago │ Status: ● In Sync                    │
│                                                                              │
│  [Sync Status] [Diff View] [History] [Settings]                             │
│  ══════════════════════════════════════════════════════════════════════════ │
│                                                                              │
│  Environment Status                                                          │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Environment   │ Resources │ Synced │ Drift │ Last Sync │ Status       ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  production    │ 45        │ 45     │ 0     │ 5m ago    │ ● In Sync    ││
│  │  staging       │ 38        │ 36     │ 2     │ 12m ago   │ ⚠️ Drift     ││
│  │  development   │ 52        │ 52     │ 0     │ 2m ago    │ ● In Sync    ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Detected Drift (staging)                                  [Auto-Remediate] │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Stream: EVENTS                                                         ││
│  │  ┌───────────────────────────────────────────────────────────────────┐ ││
│  │  │  Field          │ Git (Expected)  │ Actual        │ Action       │ ││
│  │  │  ───────────────────────────────────────────────────────────────  │ ││
│  │  │  maxBytes       │ 50GB            │ 100GB         │ [Revert]     │ ││
│  │  │  replicas       │ 2               │ 3             │ [Revert]     │ ││
│  │  │                                                                   │ ││
│  │  │  Manual change detected at 2024-01-15 09:23 by john@acme.com     │ ││
│  │  │                                                                   │ ││
│  │  │  Options: [Revert to Git] [Update Git from Cluster] [Ignore]     │ ││
│  │  └───────────────────────────────────────────────────────────────────┘ ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Recent Syncs                                                                │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Commit       │ Author      │ Changes           │ Status    │ Time     ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  a3f2d1c      │ jane@acme   │ +2 streams        │ ✅ Applied │ 5m ago   ││
│  │  b4e5c2a      │ bob@acme    │ Update consumers  │ ✅ Applied │ 2h ago   ││
│  │  c5d6e3b      │ alice@acme  │ New workflow      │ ✅ Applied │ 1d ago   ││
│  │  d6e7f4c      │ john@acme   │ Quota increase    │ ⏳ Pending │ 1d ago   ││
│  └──────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

8.2 Terraform Provider

┌─────────────────────────────────────────────────────────────────────────────┐
│                      TERRAFORM PROVIDER DESIGN                               │
└─────────────────────────────────────────────────────────────────────────────┘

TERRAFORM RESOURCE EXAMPLES
───────────────────────────

# Provider configuration
provider "nats" {
  endpoint = "https://console.nats.acme.com"
  api_key  = var.nats_api_key
  
  # Optional: specific cluster
  cluster_id = "prod-us-east"
}

# Stream resource
resource "nats_stream" "orders" {
  name        = "ORDERS"
  description = "Customer order events"
  
  subjects = ["orders.>"]
  
  retention = "limits"
  storage   = "file"
  
  max_bytes        = 107374182400  # 100GB
  max_age          = "168h"        # 7 days
  max_msg_size     = 8388608       # 8MB
  max_msgs         = -1            # unlimited
  
  replicas    = 3
  compression = "s2"
  discard     = "old"
  
  duplicate_window = "5m"
  
  placement {
    tags = ["ssd", "us-east"]
  }
  
  # Schema enforcement
  schema {
    type       = "avro"
    schema_id  = nats_schema.order.id
    validation = "strict"
  }
  
  labels = {
    team = "payments"
    tier = "critical"
  }
}

# Consumer resource
resource "nats_consumer" "order_processor" {
  stream_name = nats_stream.orders.name
  
  name         = "order-processor"
  durable_name = "order-processor"
  
  deliver_policy  = "all"
  ack_policy      = "explicit"
  ack_wait        = "30s"
  max_deliver     = 5
  max_ack_pending = 1000
  
  filter_subject = "orders.created.>"
  
  # Push delivery (optional)
  # deliver_subject = "deliver.order-processor"
  
  # Rate limiting
  rate_limit = 1000  # msgs per second
}

# Schema resource
resource "nats_schema" "order" {
  name      = "Order"
  namespace = "io.acme.orders"
  type      = "avro"
  
  compatibility = "backward"
  
  schema = file("${path.module}/schemas/order.avsc")
}

# KV Store resource
resource "nats_kv_bucket" "customer_cache" {
  bucket      = "customer-cache"
  description = "Customer data cache"
  
  max_value_size = 102400  # 100KB
  history        = 5
  ttl            = "24h"
  
  replicas = 3
  storage  = "file"
}

# Alert rule resource
resource "nats_alert_rule" "high_lag" {
  name     = "High Consumer Lag Alert"
  severity = "critical"
  
  condition {
    metric    = "consumer_lag"
    stream    = nats_stream.orders.name
    consumer  = nats_consumer.order_processor.name
    operator  = ">"
    threshold = 10000
    duration  = "5m"
  }
  
  notification {
    channel = "slack"
    target  = "#alerts-critical"
  }
  
  notification {
    channel = "pagerduty"
    target  = "payments-oncall"
  }
}

# Workflow/Pipeline resource
resource "nats_workflow" "order_pipeline" {
  name        = "Order Processing Pipeline"
  description = "Enriches and routes orders"
  
  enabled = true
  
  trigger {
    type   = "stream"
    stream = nats_stream.orders.name
    filter = "orders.created.>"
  }
  
  pipeline = file("${path.module}/workflows/order-pipeline.json")
  
  error_handling {
    max_retries = 3
    dlq_stream  = nats_stream.orders_dlq.name
  }
}


TERRAFORM IMPORT SUPPORT
────────────────────────

# Import existing resources
terraform import nats_stream.orders ORDERS
terraform import nats_consumer.order_processor ORDERS/order-processor
terraform import nats_schema.order Order

9. Advanced Observability

9.1 Distributed Tracing

┌─────────────────────────────────────────────────────────────────────────────┐
│                      DISTRIBUTED TRACING VIEW                                │
└─────────────────────────────────────────────────────────────────────────────┘

MESSAGE TRACE VISUALIZATION
───────────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Message Trace: orders.created (Seq: 15234567)               [Export Trace] │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Trace ID: abc-123-def-456                     Total Duration: 234ms        │
│  Start: 2024-01-15 10:45:23.456 UTC            Services: 5                  │
│                                                                              │
│  Waterfall View                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Service              │ Operation           │ Duration │ Timeline      ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │                       │                     │          │ 0ms    250ms  ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  order-api            │ publish             │ 12ms     │ ██░░░░░░░░░░  ││
│  │  └─ NATS              │ stream.write        │ 3ms      │ █░░░░░░░░░░░  ││
│  │                       │                     │          │               ││
│  │  order-processor      │ consume             │ 145ms    │ ░░████████░░  ││
│  │  ├─ validate          │ schema.validate     │ 5ms      │ ░░█░░░░░░░░░  ││
│  │  ├─ customer-svc      │ http.get            │ 45ms     │ ░░░██░░░░░░░  ││
│  │  ├─ inventory-svc     │ http.get            │ 62ms     │ ░░░░███░░░░░  ││
│  │  ├─ process           │ business.logic      │ 23ms     │ ░░░░░░░█░░░░  ││
│  │  └─ NATS              │ stream.publish      │ 8ms      │ ░░░░░░░░█░░░  ││
│  │                       │                     │          │               ││
│  │  notification-svc     │ consume             │ 45ms     │ ░░░░░░░░░██░  ││
│  │  └─ email-provider    │ http.post           │ 38ms     │ ░░░░░░░░░██░  ││
│  │                       │                     │          │               ││
│  │  analytics-worker     │ consume             │ 23ms     │ ░░░░░░░░░░██  ││
│  │  └─ clickhouse        │ db.insert           │ 15ms     │ ░░░░░░░░░░█░  ││
│  │                       │                     │          │               ││
│  │  audit-logger         │ consume             │ 18ms     │ ░░░░░░░░░░░█  ││
│  │  └─ clickhouse        │ db.insert           │ 12ms     │ ░░░░░░░░░░░█  ││
│  │                       │                     │          │               ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Message Flow Diagram                                                        │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  ┌──────────┐      ┌──────────┐      ┌──────────────────────────┐      ││
│  │  │order-api │─────►│  ORDERS  │─────►│  order-processor         │      ││
│  │  └──────────┘      │  stream  │      │  (145ms, ✅ success)      │      ││
│  │                    └──────────┘      └────────────┬─────────────┘      ││
│  │                                                   │                     ││
│  │                                      ┌────────────┴────────────┐       ││
│  │                                      │                         │       ││
│  │                                      ▼                         ▼       ││
│  │                    ┌──────────────────────────┐  ┌──────────────────┐  ││
│  │                    │  ORDERS_PROCESSED stream │  │ NOTIFICATIONS    │  ││
│  │                    └────────────┬─────────────┘  │ stream           │  ││
│  │                                 │                 └────────┬─────────┘  ││
│  │                    ┌────────────┴────────┐                │            ││
│  │                    │                     │                ▼            ││
│  │                    ▼                     ▼       ┌──────────────────┐  ││
│  │          ┌──────────────────┐  ┌──────────────┐  │notification-svc │  ││
│  │          │analytics-worker  │  │audit-logger  │  │(45ms, ✅)        │  ││
│  │          │(23ms, ✅)         │  │(18ms, ✅)     │  └──────────────────┘  ││
│  │          └──────────────────┘  └──────────────┘                        ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Span Details: order-processor                                               │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Tags:                                                                  ││
│  │    service: order-processor    version: v2.3.1                          ││
│  │    pod: order-processor-7d8c   node: k8s-node-03                        ││
│  │    nats.stream: ORDERS         nats.sequence: 15234567                  ││
│  │                                                                         ││
│  │  Events:                                                                ││
│  │    10:45:23.468  message.received                                       ││
│  │    10:45:23.473  schema.validated                                       ││
│  │    10:45:23.518  customer.fetched  customer_id=CUST-456                 ││
│  │    10:45:23.580  inventory.checked sku_count=3                          ││
│  │    10:45:23.603  order.processed   status=confirmed                     ││
│  │    10:45:23.611  message.published to=ORDERS_PROCESSED                  ││
│  │    10:45:23.613  message.acked                                          ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

9.2 Custom Dashboards

┌─────────────────────────────────────────────────────────────────────────────┐
│                      CUSTOM DASHBOARD BUILDER                                │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  Dashboard: Payments Overview                        [Edit] [Share] [⋮]     │
│  Auto-refresh: 30s │ Time range: Last 6 hours                               │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  ┌────────────────────────┐ ┌────────────────────────┐ ┌───────────────────┐│
│  │  Transaction Rate      │ │  Success Rate          │ │  Avg Latency      ││
│  │  ═══════════════════   │ │  ═══════════════════   │ │  ═══════════════  ││
│  │                        │ │                        │ │                   ││
│  │     2,345 /sec         │ │       99.7%            │ │     45 ms         ││
│  │     ↑ 12% vs avg       │ │       ↓ 0.1%           │ │     ↓ 5ms         ││
│  │                        │ │                        │ │                   ││
│  └────────────────────────┘ └────────────────────────┘ └───────────────────┘│
│                                                                              │
│  ┌──────────────────────────────────────────────────────────────────────────┐│
│  │  Transaction Volume by Region                                            ││
│  │  ════════════════════════════════════════════════════════════════════   ││
│  │                                                                          ││
│  │   3K ┤                    ╭────╮                      ╭────╮             ││
│  │      │               ╭────╯    ╰────╮           ╭────╯    ╰────╮        ││
│  │   2K ┤          ╭────╯              ╰────╮ ╭────╯              ╰───     ││
│  │      │     ╭────╯                        ╰─╯                            ││
│  │   1K ┼─────╯                                                             ││
│  │      │                                                                   ││
│  │   0  ┼───────────────────────────────────────────────────────────────── ││
│  │       04:00      06:00      08:00      10:00      Now                   ││
│  │                                                                          ││
│  │   ── us-east  ── us-west  ── eu-west  ── ap-south                       ││
│  └──────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  ┌──────────────────────────────────┐ ┌─────────────────────────────────────┐│
│  │  Consumer Health                 │ │  Top Errors                         ││
│  │  ═══════════════════════════════ │ │  ═══════════════════════════════   ││
│  │                                  │ │                                     ││
│  │  payment-processor  ● Healthy   │ │  ValidationError     ████████ 68%   ││
│  │   Lag: 234   Rate: 1.2K/s       │ │  TimeoutError        ███░░░░░ 22%   ││
│  │                                  │ │  NetworkError        █░░░░░░░ 7%    ││
│  │  fraud-detector     ● Healthy   │ │  SchemaError         █░░░░░░░ 3%    ││
│  │   Lag: 45    Rate: 890/s        │ │                                     ││
│  │                                  │ │  Total Errors: 234 (0.3%)          ││
│  │  settlement-worker  ⚠️ Warning  │ │                                     ││
│  │   Lag: 5,234 Rate: 450/s        │ │                                     ││
│  │                                  │ │                                     ││
│  └──────────────────────────────────┘ └─────────────────────────────────────┘│
│                                                                              │
│  ┌──────────────────────────────────────────────────────────────────────────┐│
│  │  Recent Alerts                                                           ││
│  │  ════════════════════════════════════════════════════════════════════   ││
│  │                                                                          ││
│  │  ⚠️ 10:32  Consumer lag threshold exceeded (settlement-worker)          ││
│  │  ● 09:15  Alert resolved: High error rate returned to normal            ││
│  │  ⚠️ 08:45  Storage usage above 80% (payments-audit stream)              ││
│  │                                                                          ││
│  └──────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

10. Data Lineage & Catalog

10.1 Data Lineage Visualization

┌─────────────────────────────────────────────────────────────────────────────┐
│                         DATA LINEAGE & CATALOG                               │
└─────────────────────────────────────────────────────────────────────────────┘

END-TO-END LINEAGE VIEW
───────────────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Data Lineage: Order Event                              [Expand All] [⬇️]   │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Trace the journey of data from source to destination                        │
│                                                                              │
│  ┌──────────────────────────────────────────────────────────────────────────┐│
│  │                                                                          ││
│  │   DATA SOURCES                                                           ││
│  │   ┌─────────────────┐                                                    ││
│  │   │ 🌐 Order API    │                                                    ││
│  │   │    (REST)       │                                                    ││
│  │   └────────┬────────┘                                                    ││
│  │            │                                                             ││
│  │            ▼                                                             ││
│  │   INGESTION LAYER                                                        ││
│  │   ┌─────────────────┐                                                    ││
│  │   │ 📥 ORDERS       │                                                    ││
│  │   │    Stream       │                                                    ││
│  │   │    (Raw Events) │                                                    ││
│  │   └────────┬────────┘                                                    ││
│  │            │                                                             ││
│  │   ┌────────┴────────────────────────────────────────────────────┐       ││
│  │   │                                                              │       ││
│  │   ▼                                                              ▼       ││
│  │   PROCESSING LAYER                                                       ││
│  │   ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐     ││
│  │   │ ⚙️ Enrichment   │    │ ⚙️ Validation   │    │ ⚙️ Fan-out      │     ││
│  │   │    Pipeline     │    │    Service      │    │    Router       │     ││
│  │   └────────┬────────┘    └────────┬────────┘    └────────┬────────┘     ││
│  │            │                      │                      │               ││
│  │            ▼                      ▼                      ▼               ││
│  │   ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐     ││
│  │   │ 📦 ORDERS_      │    │ 📦 ORDERS_DLQ   │    │ 📦 ORDERS_US    │     ││
│  │   │    ENRICHED     │    │    (Failures)   │    │    ORDERS_EU    │     ││
│  │   └────────┬────────┘    └─────────────────┘    │    ORDERS_APAC  │     ││
│  │            │                                     └────────┬────────┘     ││
│  │   ┌────────┴────────────────────────────────────────────────┐           ││
│  │   │                           │                              │           ││
│  │   ▼                           ▼                              ▼           ││
│  │   CONSUMPTION LAYER                                                      ││
│  │   ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐     ││
│  │   │ 👤 order-       │    │ 👤 analytics-   │    │ 👤 notification-│     ││
│  │   │    processor    │    │    worker       │    │    service      │     ││
│  │   └────────┬────────┘    └────────┬────────┘    └────────┬────────┘     ││
│  │            │                      │                      │               ││
│  │            ▼                      ▼                      ▼               ││
│  │   DESTINATION LAYER                                                      ││
│  │   ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐     ││
│  │   │ 🗄️ PostgreSQL   │    │ 🗄️ ClickHouse   │    │ 📧 Email/SMS    │     ││
│  │   │    (Orders DB)  │    │    (Analytics)  │    │    Providers    │     ││
│  │   └─────────────────┘    └─────────────────┘    └─────────────────┘     ││
│  │                                                                          ││
│  └──────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Impact Analysis: What happens if ORDERS stream schema changes?              │
│  ┌──────────────────────────────────────────────────────────────────────────┐│
│  │                                                                          ││
│  │  Downstream Impact:                                                      ││
│  │  • 3 processing pipelines (Enrichment, Validation, Fan-out)             ││
│  │  • 4 consumer applications                                               ││
│  │  • 5 destination systems                                                 ││
│  │  • ~15M messages/day affected                                           ││
│  │                                                                          ││
│  │  Recommended Actions:                                                    ││
│  │  1. Notify all downstream team owners (Payments, Analytics, Comms)      ││
│  │  2. Schedule maintenance window                                          ││
│  │  3. Run schema compatibility check                                       ││
│  │                                                                          ││
│  │  [Generate Impact Report] [Notify Teams] [Schedule Change]              ││
│  │                                                                          ││
│  └──────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

10.2 Data Catalog

┌─────────────────────────────────────────────────────────────────────────────┐
│                           DATA CATALOG                                       │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  Data Catalog                                    [+ Add Entry] [Settings]   │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Search: [Search streams, subjects, schemas, fields...         ] [🔍]       │
│                                                                              │
│  Browse: [All ▼] [Production ▼] [Team: All ▼] [Tags: All ▼]                │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  📦 ORDERS                                               [View Details] ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Customer order events from e-commerce platform                         ││
│  │                                                                         ││
│  │  Owner: Payments Team          │ Classification: PII, Financial        ││
│  │  Environment: Production       │ Quality Score: 98.5%                  ││
│  │  Schema: Order (v3)            │ Last Updated: 2h ago                  ││
│  │                                                                         ││
│  │  Tags: [orders] [payments] [critical] [customer-data]                  ││
│  │                                                                         ││
│  │  Key Fields:                                                            ││
│  │  • order_id (string) - Unique order identifier                         ││
│  │  • customer_id (string) - Customer reference [PII]                     ││
│  │  • amount (decimal) - Order total [Financial]                          ││
│  │  • status (enum) - Order status                                        ││
│  │                                                                         ││
│  │  Lineage: 1 source → 5 destinations                                    ││
│  │  Usage: 15.2M msgs/day │ 12 consumers │ 3 workflows                    ││
│  │                                                                         ││
│  ├─────────────────────────────────────────────────────────────────────────┤│
│  │                                                                         ││
│  │  📦 EVENTS                                               [View Details] ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  Application events and user activity tracking                          ││
│  │                                                                         ││
│  │  Owner: Analytics Team         │ Classification: User Activity         ││
│  │  Environment: Production       │ Quality Score: 99.1%                  ││
│  │  Schema: Event (v2)            │ Last Updated: 30m ago                 ││
│  │                                                                         ││
│  │  Tags: [events] [analytics] [tracking] [mobile] [web]                  ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Catalog Statistics                                                          │
│  ┌────────────────────┐ ┌────────────────────┐ ┌─────────────────────┐      │
│  │  24 Streams        │ │  156 Subjects      │ │  18 Schemas         │      │
│  │  Documented        │ │  Cataloged         │ │  Registered         │      │
│  └────────────────────┘ └────────────────────┘ └─────────────────────┘      │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

11. Disaster Recovery & Replication

11.1 DR Configuration

┌─────────────────────────────────────────────────────────────────────────────┐
│                      DISASTER RECOVERY CONFIGURATION                         │
└─────────────────────────────────────────────────────────────────────────────┘

DR TOPOLOGY
───────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Disaster Recovery: Global Replication                                       │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  ┌──────────────────────────────────────────────────────────────────────────┐│
│  │                                                                          ││
│  │         US-EAST (Primary)                    US-WEST (Hot Standby)       ││
│  │         ┌─────────────────┐                 ┌─────────────────┐          ││
│  │         │  ██████████████ │ ───sync────►   │  ██████████████ │          ││
│  │         │  NATS Cluster   │   (async)      │  NATS Cluster   │          ││
│  │         │                 │                 │                 │          ││
│  │         │  • 3 nodes      │ RPO: 5 sec     │  • 3 nodes      │          ││
│  │         │  • 24 streams   │ RTO: 30 sec    │  • 24 mirrors   │          ││
│  │         │  • Active       │                 │  • Standby      │          ││
│  │         └─────────────────┘                 └─────────────────┘          ││
│  │                │                                   │                     ││
│  │                │                                   │                     ││
│  │                │           EU-WEST (DR Cold)       │                     ││
│  │                │          ┌─────────────────┐      │                     ││
│  │                └──────────│  ░░░░░░░░░░░░░░ │◄─────┘                     ││
│  │                   sync    │  NATS Cluster   │   sync                     ││
│  │                  (batch)  │                 │  (batch)                   ││
│  │                           │  • 3 nodes      │                            ││
│  │                  RPO: 1hr │  • Snapshots    │                            ││
│  │                  RTO: 4hr │  • Cold         │                            ││
│  │                           └─────────────────┘                            ││
│  │                                                                          ││
│  └──────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Replication Status                                                          │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Source      │ Target    │ Type     │ Lag    │ Status    │ Last Sync  ││
│  │  ─────────────────────────────────────────────────────────────────────  ││
│  │  US-EAST     │ US-WEST   │ Async    │ 2 sec  │ ● Synced  │ Just now   ││
│  │  US-EAST     │ EU-WEST   │ Batch    │ 45 min │ ● Synced  │ 45m ago    ││
│  │  US-WEST     │ EU-WEST   │ Batch    │ 50 min │ ● Synced  │ 50m ago    ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Failover Controls                                                           │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Current Primary: US-EAST                                               ││
│  │                                                                         ││
│  │  [🔄 Failover to US-WEST]  [⏸️ Pause Replication]  [🔍 Test Failover]  ││
│  │                                                                         ││
│  │  ⚠️ Failover will redirect all traffic to US-WEST within 30 seconds    ││
│  │     Data loss risk: ~5 seconds (current replication lag)                ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Backup & Snapshots                                                          │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │                                                                         ││
│  │  Scheduled Backups:                                                     ││
│  │  • Full backup: Daily at 02:00 UTC → S3 (retained 30 days)             ││
│  │  • Incremental: Hourly → S3 (retained 7 days)                          ││
│  │                                                                         ││
│  │  Latest Backups:                                                        ││
│  │  │ Type       │ Time           │ Size    │ Streams │ Status           │ ││
│  │  │ Full       │ 2024-01-15 02:00│ 45 GB   │ 24      │ ✅ Verified      │ ││
│  │  │ Incremental│ 2024-01-15 10:00│ 2.3 GB  │ 24      │ ✅ Verified      │ ││
│  │  │ Incremental│ 2024-01-15 09:00│ 1.8 GB  │ 24      │ ✅ Verified      │ ││
│  │                                                                         ││
│  │  [Create Manual Backup] [Restore from Backup] [Configure Schedule]     ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

12. Developer Experience

12.1 SDK & Code Generation

┌─────────────────────────────────────────────────────────────────────────────┐
│                      DEVELOPER TOOLS & SDK                                   │
└─────────────────────────────────────────────────────────────────────────────┘

CODE GENERATOR
──────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  Code Generator                                                              │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Generate client code from your streams and schemas                          │
│                                                                              │
│  Stream: [ORDERS                    ▼]                                       │
│  Language: [TypeScript ▼] [Python ▼] [Go ▼] [Java ▼] [C# ▼]                 │
│                                                                              │
│  Options:                                                                    │
│  ☑️ Generate producer client                                                 │
│  ☑️ Generate consumer client                                                 │
│  ☑️ Generate schema types                                                    │
│  ☑️ Include validation                                                       │
│  ☐ Generate tests                                                            │
│                                                                              │
│                                                    [Generate Code]           │
│                                                                              │
│  Generated Code Preview (TypeScript)                                         │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  // Auto-generated NATS client for ORDERS stream                        ││
│  │  // Generated at: 2024-01-15T10:45:00Z                                  ││
│  │                                                                         ││
│  │  import { connect, JetStreamClient, NatsConnection } from 'nats';       ││
│  │  import { Order, OrderSchema } from './schemas/order';                  ││
│  │                                                                         ││
│  │  export class OrdersProducer {                                          ││
│  │    private js: JetStreamClient;                                         ││
│  │                                                                         ││
│  │    constructor(private nc: NatsConnection) {                            ││
│  │      this.js = nc.jetstream();                                          ││
│  │    }                                                                    ││
│  │                                                                         ││
│  │    async publishOrderCreated(order: Order): Promise<void> {             ││
│  │      // Validate against schema                                         ││
│  │      const validated = OrderSchema.parse(order);                        ││
│  │                                                                         ││
│  │      await this.js.publish(                                             ││
│  │        `orders.created.${order.region}`,                                ││
│  │        JSON.stringify(validated),                                       ││
│  │        {                                                                ││
│  │          headers: {                                                     ││
│  │            'Content-Type': 'application/json',                          ││
│  │            'X-Schema-Version': '3',                                     ││
│  │          }                                                              ││
│  │        }                                                                ││
│  │      );                                                                 ││
│  │    }                                                                    ││
│  │  }                                                                      ││
│  │                                                                         ││
│  │  export class OrdersConsumer {                                          ││
│  │    private js: JetStreamClient;                                         ││
│  │                                                                         ││
│  │    async consume(                                                       ││
│  │      handler: (order: Order, ack: () => void) => Promise<void>         ││
│  │    ): Promise<void> {                                                   ││
│  │      const consumer = await this.js.consumers.get('ORDERS', 'my-app');  ││
│  │      const messages = await consumer.consume();                         ││
│  │                                                                         ││
│  │      for await (const msg of messages) {                                ││
│  │        const order = OrderSchema.parse(JSON.parse(msg.data));           ││
│  │        await handler(order, () => msg.ack());                           ││
│  │      }                                                                  ││
│  │    }                                                                    ││
│  │  }                                                                      ││
│  │                                                                         ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  [Copy to Clipboard] [Download as ZIP] [Push to GitHub]                     │
└─────────────────────────────────────────────────────────────────────────────┘


API PLAYGROUND
──────────────

┌─────────────────────────────────────────────────────────────────────────────┐
│  API Playground                                         [Documentation]     │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Test NATS operations directly from the browser                              │
│                                                                              │
│  Operation: [Publish Message ▼]                                              │
│                                                                              │
│  Stream:  [ORDERS ▼]                                                        │
│  Subject: [orders.created.us-east    ]                                      │
│                                                                              │
│  Headers:                                                                    │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  Content-Type: application/json                                  [+ Add]││
│  │  X-Correlation-ID: test-123                                      [+ Add]││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  Payload:                                                                    │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  {                                                                      ││
│  │    "order_id": "ORD-2024-TEST001",                                      ││
│  │    "customer_id": "CUST-12345",                                         ││
│  │    "amount": 299.99,                                                    ││
│  │    "currency": "USD",                                                   ││
│  │    "status": "pending",                                                 ││
│  │    "items": [                                                           ││
│  │      { "sku": "SKU-001", "quantity": 2, "price": 149.99 }              ││
│  │    ]                                                                    ││
│  │  }                                                                      ││
│  └─────────────────────────────────────────────────────────────────────────┘│
│                                                                              │
│  [Validate Schema] [Send Message] [Generate cURL] [Generate Code]           │
│                                                                              │
│  Response:                                                                   │
│  ┌─────────────────────────────────────────────────────────────────────────┐│
│  │  ✅ Message published successfully                                      ││
│  │                                                                         ││
│  │  Stream: ORDERS                                                         ││
│  │  Sequence: 15234568                                                     ││
│  │  Timestamp: 2024-01-15T10:45:23.456Z                                    ││
│  │  Duplicate: false                                                       ││
│  │                                                                         ││
│  │  Latency: 12ms                                                          ││
│  └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘

12.2 CLI Tool

┌─────────────────────────────────────────────────────────────────────────────┐
│                           CLI TOOL DESIGN                                    │
└─────────────────────────────────────────────────────────────────────────────┘

CLI COMMAND STRUCTURE
─────────────────────

nats-console
├── auth
│   ├── login                 # Interactive login
│   ├── logout                # Clear credentials
│   ├── status                # Show auth status
│   └── token                 # Get/refresh token
├── cluster
│   ├── list                  # List all clusters
│   ├── info <name>           # Cluster details
│   ├── health <name>         # Health check
│   └── switch <name>         # Switch active cluster
├── stream
│   ├── list                  # List streams
│   ├── create <name>         # Create stream
│   ├── info <name>           # Stream details
│   ├── update <name>         # Update config
│   ├── delete <name>         # Delete stream
│   ├── purge <name>          # Purge messages
│   └── mirror <src> <dst>    # Setup mirror
├── consumer
│   ├── list <stream>         # List consumers
│   ├── create <stream>       # Create consumer
│   ├── info <stream> <name>  # Consumer details
│   ├── delete <stream> <name># Delete consumer
│   └── pause <stream> <name> # Pause consumer
├── message
│   ├── publish <subject>     # Publish message
│   ├── get <stream> <seq>    # Get message
│   ├── browse <stream>       # Browse messages
│   └── replay <stream>       # Replay messages
├── kv
│   ├── list                  # List KV buckets
│   ├── get <bucket> <key>    # Get value
│   ├── put <bucket> <key>    # Set value
│   ├── delete <bucket> <key> # Delete key
│   └── watch <bucket>        # Watch changes
├── schema
│   ├── list                  # List schemas
│   ├── register <file>       # Register schema
│   ├── validate <schema> <msg># Validate message
│   └── diff <v1> <v2>        # Compare versions
├── workflow
│   ├── list                  # List workflows
│   ├── deploy <file>         # Deploy workflow
│   ├── status <name>         # Workflow status
│   └── logs <name>           # Workflow logs
├── config
│   ├── export <stream>       # Export to YAML
│   ├── import <file>         # Import from YAML
│   ├── diff <file>           # Show diff
│   └── apply <file>          # Apply changes
└── ai
    ├── ask <question>        # Ask AI assistant
    ├── diagnose <resource>   # AI diagnostics
    └── suggest <scenario>    # Get suggestions


USAGE EXAMPLES
──────────────

# Login to console
$ nats-console auth login
? Email: user@acme.com
? Password: ********
✅ Logged in successfully

# List streams with details
$ nats-console stream list --format table
NAME            MESSAGES    STORAGE    CONSUMERS    STATUS
ORDERS          15.2M       2.3 GB     5            ● Healthy
EVENTS          89.5M       12.1 GB    12           ● Healthy
NOTIFICATIONS   5.8M        890 MB     3            ● Healthy

# Create stream from template
$ nats-console stream create payments-new \
    --template work-queue \
    --subjects "payments.>" \
    --max-bytes 100GB \
    --replicas 3

✅ Stream 'payments-new' created successfully

# Publish message
$ echo '{"order_id": "ORD-123"}' | nats-console message publish orders.created

# Browse messages interactively
$ nats-console message browse ORDERS --filter "orders.created.*" --last 10

# AI-powered diagnostics
$ nats-console ai diagnose order-processor
🤖 Analyzing consumer 'order-processor'...

Findings:
1. ⚠️ Consumer lag is 5,234 (above threshold of 1,000)
2. Processing rate decreased 40% in last hour
3. Correlated with increased DB latency

Recommendations:
1. Scale consumers from 3 to 6
2. Add connection pooling to database client
3. Enable batch processing (batch_size: 100)

Apply fix #1? [y/N]:

# Export configuration to Git
$ nats-console config export ORDERS --output ./streams/orders.yaml
✅ Exported to ./streams/orders.yaml

# Apply configuration from file
$ nats-console config apply ./streams/orders.yaml --dry-run
Changes to apply:
  Stream: ORDERS
  - maxBytes: 50GB → 100GB
  - replicas: 2 → 3

Apply changes? [y/N]:

Summary

This comprehensive design document covers all advanced capabilities for a modern NATS JetStream management console comparable to RedPanda Console, including:

  1. Advanced Stream Management - Lifecycle, templates, subject hierarchies
  2. Consumer Orchestration - Groups, autoscaling, DLQ management
  3. Message Workflows - Visual pipeline builder, routing, transforms
  4. Schema Registry - Evolution, compatibility, data quality
  5. Stream Processing - Real-time transforms, aggregations
  6. AI Features - Copilot, insights, anomaly detection, query generation
  7. Self-Service Portal - Team management, quotas, approvals
  8. GitOps Integration - IaC, Terraform provider, drift detection
  9. Advanced Observability - Distributed tracing, custom dashboards
  10. Data Lineage - Catalog, impact analysis, governance
  11. Disaster Recovery - Replication, failover, backups
  12. Developer Experience - SDK generation, playground, CLI

This design provides a foundation for building an enterprise-grade streaming platform management console with cutting-edge AI capabilities.