This document tracks the implementation status and future plans for Mycel.
All core features are implemented and production-ready. The roadmap below reflects the complete implementation history.
| Connector | Input (Server) | Output (Client) | Phase |
|---|---|---|---|
| REST | ✅ | ✅ | 1-2 |
| SQLite | ✅ | ✅ | 1 |
| PostgreSQL | ✅ | ✅ | 2 |
| MySQL | ✅ | ✅ | 3.2 |
| MongoDB | ✅ | ✅ | 3.2 |
| TCP | ✅ | ✅ | 2.5 |
| RabbitMQ | ✅ | ✅ | 3 |
| Kafka | ✅ | ✅ | 3 |
| Exec | ✅ | ✅ | 3 |
| GraphQL | ✅ | ✅ | 3 |
| Cache (Memory) | ✅ | ✅ | 3.3 |
| Cache (Redis) | ✅ | ✅ | 3.3 |
| gRPC | ✅ | ✅ | 4 |
| Files | ✅ | ✅ | 4 |
| S3/MinIO | ✅ | ✅ | 4 |
| Webhooks | ✅ | ✅ | 6 |
| - | ✅ | 6 | |
| Slack | - | ✅ | 6 |
| Discord | - | ✅ | 6 |
| SMS | - | ✅ | 6 |
| Push | - | ✅ | 6 |
| WebSocket | ✅ | ✅ | 10 |
| SSE | ✅ | ✅ | 10 |
| CDC | ✅ | - | 10 |
| Elasticsearch | - | ✅ | 11 |
| OAuth | ✅ | - | 11 |
| SOAP | ✅ | ✅ | 12+ |
| Feature | Status | Phase |
|---|---|---|
| CEL Transforms | ✅ | 2 |
| Type Validation | ✅ | 2 |
| Environment Variables | ✅ | 2 |
| Data Enrichment | ✅ | 3 |
| Raw SQL Queries | ✅ | 3.2 |
| GraphQL Federation v2 | ✅ | 3 |
| Named Caches | ✅ | 3.3 |
| Cache Invalidation | ✅ | 3.3 |
| Health Checks | ✅ | 4 |
| Prometheus Metrics | ✅ | 4 |
| Rate Limiting | ✅ | 4 |
| Circuit Breaker | ✅ | 4 |
| Hot Reload | ✅ | 4 |
| MQ Headers Access | ✅ | 4.2 |
| Distributed Locks | ✅ | 4.2 |
| Semaphores | ✅ | 4.2 |
| Coordinate (Signal/Wait) | ✅ | 4.2 |
| Flow Triggers (Cron) | ✅ | 4.2 |
| Connector Profiles | ✅ | 4.3 |
| Aspects (AOP) | ✅ | 5 |
| Mocks/Testing | ✅ | 5 |
| OpenAPI Export | ✅ | 5 |
| AsyncAPI Export | ✅ | 5 |
| Custom Validators (Regex/CEL) | ✅ | 5 |
| Custom Validators (WASM) | ✅ | 5 |
| Custom Functions (WASM) | ✅ | 5 |
| Plugins System | ✅ | 5 |
| Auth System Core | ✅ | 5.1a |
| Auth Security Features | ✅ | 5.1b |
| Auth MFA (TOTP/WebAuthn) | ✅ | 5.1c |
| Auth SSO/Social | ✅ | 5.1d |
| Notifications (6 channels) | ✅ | 6 |
| Step Orchestration | ✅ | 7 |
| Filter Rejection Policies | ✅ | 7 |
| Dedupe | ✅ | 7 |
| GraphQL Query Optimization | ✅ | 8 |
| GraphQL DataLoader | ✅ | 8 |
| GraphQL Subscriptions (server) | ✅ | 9 |
| GraphQL Subscription Client | ✅ | 9 |
| WebSocket Connector | ✅ | 10 |
| CDC (PostgreSQL WAL) | ✅ | 10 |
| SSE Connector | ✅ | 10 |
| Elasticsearch Connector | ✅ | 11 |
| OAuth Connector | ✅ | 11 |
| Batch Processing | ✅ | 11 |
| Sagas | ✅ | 12 |
| State Machines | ✅ | 12 |
| Long-Running Workflows | ✅ | 12 |
| SOAP Connector | ✅ | 12+ |
| Codec System (JSON/XML) | ✅ | 12+ |
| File Watch Mode | ✅ | 12+ |
| Error Handling Guide | ✅ | 12+ |
| Standalone Admin Server | ✅ | 12+ |
| .env File Support | ✅ | 12+ |
| WASM Documentation | ✅ | 12+ |
| Integration Test Suite | ✅ | 12+ |
| Typed GraphQL DTOs | ✅ | 12+ |
- REST Server connector
- SQLite database connector
- Basic flow execution
- CLI commands (start, validate, check)
- ASCII banner
- HTTP Client connector with OAuth2, Bearer, API Key, Basic auth
- PostgreSQL with connection pooling and SSL
- CEL-powered transformation engine
- Type validation with schemas
- Environment variable support
- TCP Server and Client connectors
- Length-prefixed framing
- Codecs: JSON, msgpack, raw
- NestJS protocol compatibility
- RabbitMQ with topic patterns and concurrent workers
- Kafka with consumer groups and SASL auth
- Exec connector (local and SSH)
- GraphQL Server and Client
- GraphQL Federation v2 support
- Data enrichment system
- MySQL with connection pooling
- MongoDB with full NoSQL operations
- Raw SQL query support for complex joins
- Memory cache with LRU eviction
- Redis cache with connection pooling
- Named cache definitions
- Cache invalidation patterns
- Health check endpoints (
/health,/health/live,/health/ready) - Prometheus metrics (
/metrics) - gRPC Server and Client
- Files connector (local filesystem)
- S3/MinIO connector
- Rate limiting with token bucket algorithm
- Circuit breaker pattern
- Hot reload with file watching
- Environment variables for runtime configuration:
MYCEL_ENV: Environment selection (development, staging, production)MYCEL_LOG_LEVEL: Log level (debug, info, warn, error)MYCEL_LOG_FORMAT: Log format (text, json)
- CLI flags override environment variables
- Docker path standardized to
/etc/mycel - JSON logging for production environments
- ✅ MQ Headers Access:
input.body,input.headers,input.propertiesfor RabbitMQ/Kafka - ✅ Lock (Mutex): Distributed locks by key with Redis/Memory backends
- ✅ Semaphore: Limit concurrent executions (e.g., max 10 parallel API calls)
- ✅ Coordinate: Signal/Wait pattern for dependency coordination
- Wait for parent entity before processing child
- Preflight checks against database
- Configurable timeout behavior (fail/retry/skip/pass)
- ✅ Flow Triggers:
whenattribute for cron/interval schedulingwhen = "0 3 * * *"(cron)when = "@every 5m"(interval)when = "@daily"(shortcuts)
- ✅ SyncManager: Unified manager for sync primitives integrated with flow execution
- ✅ Scheduler: Cron-based flow triggers integrated with runtime
- Multiple backend implementations for the same logical connector
- Profile selection via CEL expression (e.g.,
env('PRICE_SOURCE')) - Per-profile transforms to normalize data from different backends
- Fallback chains for automatic failover between profiles
- ProfiledConnector wrapper implementing Connector interface
- Prometheus metrics for profile usage and fallback tracking
- ✅ Aspects (AOP) for cross-cutting concerns
- Pattern matching on flow names (e.g.,
create_*,update_*) - When: before, after, around, on_error
- Use cases: audit logging, caching, rate limiting, enrichment
- Pattern matching on flow names (e.g.,
- ✅ Mock system for testing
- JSON-based mock files with conditional responses (CEL)
- CLI flags:
--mock=connector,--no-mock=connector
- ✅ Documentation generation
mycel export openapi- OpenAPI 3.0.3 for REST endpointsmycel export asyncapi- AsyncAPI 2.6.0 for message queues
- ✅ Custom validators (Regex/CEL/WASM)
- ✅ Custom functions (WASM CEL extensions, 0-5 arguments)
- ✅ Plugin system (WASM plugins, auto-install on start)
- ✅ JWT token generation and validation with HMAC/RSA
- ✅ Token rotation with refresh tokens
- ✅ Password hashing with Argon2id
- ✅ Session management (create, validate, revoke)
- ✅ Configuration presets (strict, standard, relaxed, development)
- ✅ Redis/PostgreSQL/MySQL storage backends
- ✅ Brute force protection with progressive delays
- ✅ Session cleanup service with idle timeout
- ✅ Per-endpoint rate limiting
- ✅ Audit logging
- ✅ TOTP (RFC 6238) with QR code generation
- ✅ Recovery codes with secure hashing
- ✅ WebAuthn/Passkeys support
- ✅ OAuth2 service with authorization code flow
- ✅ OpenID Connect with discovery documents
- ✅ Social providers: Google, GitHub, Apple
- ✅ Enterprise OIDC for Okta, Azure AD, Auth0
- ✅ Account linking service with configurable strategies
- ✅ Webhooks - Inbound/outbound with signature verification
- ✅ Email - SMTP, SendGrid, AWS SES
- ✅ Slack - Webhook and Bot API
- ✅ Discord - Webhook and Bot API
- ✅ SMS - Twilio, AWS SNS
- ✅ Push - Firebase Cloud Messaging, Apple Push Notification service
- ✅ Configurable api_url for all notification connectors
- ✅ Step blocks: sequential multi-step execution with
whenconditions - ✅ Filter in from: CEL condition + rejection policy (
ack/reject/requeue) with dedup tracking - ✅ Conditional steps: skip steps based on CEL expressions
- ✅ Array transforms:
first,last,unique,pluck,sort_by,sum,avg - ✅ on_error with retry + DLQ: exponential backoff, dead letter queues
- ✅ merge / omit / pick: object manipulation helpers in transforms
- ✅ multi-to: fan-out to multiple targets
- ✅ dedupe: deduplication with storage backend, TTL, and
on_duplicatepolicy
- ✅ Field Analyzer: parses incoming queries to determine requested fields
- ✅ Result Pruner: removes unrequested fields from responses
- ✅ CEL functions:
has_field(),field_requested(),requested_fields(),requested_top_fields() - ✅ Database Optimizer: generates targeted SELECT statements
- ✅ Step Optimizer: skips steps whose results are not requested
- ✅ DataLoader: batches N+1 queries via
graph-gophers/dataloader
- ✅ Subscription types:
subscriptionflows with publish targets - ✅ Flow-triggered publish: MQ/CDC events push to subscribed clients
- ✅ Per-user filtering: subscribers receive only their events
- ✅ Auto entity resolution:
_entitiesrouting viaentity =on flow - ✅ GraphQL subscription client:
graphql-wsprotocol, auto-reconnect - ✅ Auto-enable Federation v2: gateway compatibility without explicit config
- ✅ WebSocket Connector: bidirectional, rooms, broadcast, per-user targeting
- ✅ CDC (Change Data Capture): PostgreSQL WAL with
pgoutput, wildcard table matching - ✅ SSE (Server-Sent Events): unidirectional push, rooms, heartbeat, CORS
- ✅ Elasticsearch: search, get, count, aggregate, index, update, delete, bulk
- ✅ OAuth Connector: Google, GitHub, Apple, OIDC, custom — authorization code flow
- ✅ Batch Processing:
batchblock in flows, chunk-based processing, params,on_error
- ✅ Saga Pattern: distributed transactions with forward steps + reverse compensation
- ✅ State Machines: entity lifecycle with guards, actions, final states
- ✅ Long-Running Workflows:
delayandawaitsteps, workflow persistence, REST API
- ✅ SOAP Connector: client + server, SOAP 1.1/1.2, WSDL auto-generation
- ✅ Codec System: JSON and XML codecs,
formatdeclarations, Content-Type auto-detection - ✅ File Watch Mode: polling-based watcher, glob patterns
- ✅ Standalone Admin Server: health + metrics on
:9090when no REST connector - ✅ .env File Support: auto-load
.envfrom config directory or cwd - ✅ Error Handling Guide: all 9 error handling layers documented
- ✅ On-error Aspects:
when = "on_error"in aspect blocks - ✅ Custom Error Responses:
error_responseblock inerror_handling - ✅ PostgreSQL INSERT RETURNING: full created row returned
- ✅ Typed GraphQL DTOs:
returnsattribute, auto-generated input types - ✅ Integration Test Suite: 25 test suites, 86+ assertions, parallel execution
- ✅ WASM Documentation: 6 languages with examples (Rust, Go/TinyGo, C, C++, AssemblyScript, Zig)
- ✅ Docs Reorganization: hierarchical structure at
docs/{getting-started,core-concepts,guides,reference,deployment,advanced}
| Item | Notes |
|---|---|
| Environment-aware behavior | Log defaults, GraphiQL, CORS, stack traces by environment |
| Mycel LSP | Language Server Protocol for editor autocompletion and validation |
| PDF generation | File connector extension |
| CSV/Excel export | File connector extension |
| Long-running process visualization | Workflow state visualization UI |
| Workflow versioning | Schema migrations for long-running workflow state |
Configuration, not code. You define WHAT you want, Mycel handles HOW.
Mycel is designed to be:
- Declarative: All configuration is HCL
- Pure Go: No CGO dependencies
- Standard protocols: REST, GraphQL, gRPC, etc.
- Hot reloadable: Changes without restart
- Production ready: Observability, resilience, security
Contributions are welcome! See the main README for guidelines.