Enterprise Roadmap¶
This roadmap outlines planned enterprise features for Cello Framework, based on research of industry-leading frameworks including Spring Boot, FastAPI, Django, NestJS, Actix-web, and Axum.
Timeline Overview¶
gantt
title Cello Enterprise Roadmap
dateFormat YYYY-Q
section Observability
OpenTelemetry & Health Checks :2026-Q1, 90d
section Data Layer
Database & Redis Integration :2026-Q2, 90d
section Protocols
GraphQL & gRPC Support :2026-Q1, 90d
section Patterns
Event Sourcing & CQRS :2026-Q4, 90d
section Production
v1.0 Production Ready :2026-Q1, 30d v0.7.0 - Observability & Health (Q1 2026) ¶
OpenTelemetry Integration¶
Full observability with the three pillars: traces, metrics, and logs.
from cello.telemetry import OpenTelemetryConfig
app.configure_telemetry(OpenTelemetryConfig(
service_name="my-service",
otlp_endpoint="http://collector:4317",
sampling_rate=0.1,
export_metrics=True,
export_traces=True,
export_logs=True
))
Features: - Distributed tracing with context propagation - Automatic instrumentation for HTTP, database, external calls - Metrics export via OTLP - Log correlation with trace IDs - Baggage propagation
Health Check Endpoints¶
Kubernetes-compatible probes.
from cello.health import HealthCheck
@app.health_check("database")
async def check_database():
await db.ping()
return HealthStatus.UP
# Auto-exposed:
# GET /health/live
# GET /health/ready
# GET /health
Features: - Liveness, readiness, startup probes - Dependency health checks - Custom health indicators - Health aggregation
v0.8.0 - Data Layer (Q1 2026) ¶
Database Connection Pooling¶
High-performance async database connections.
from cello.database import DatabaseConfig
db = await Database.connect(DatabaseConfig(
url="postgresql://localhost/mydb",
pool_size=20,
max_lifetime=1800
))
Supported Databases: - PostgreSQL - MySQL - SQLite - MongoDB (planned)
Redis Integration¶
Async Redis client with clustering support.
from cello.cache import Redis
redis = await Redis.connect("redis://localhost:6379")
await redis.set("key", "value", ttl=300)
Features: - Connection pooling - Pub/Sub support - Cluster mode - Sentinel support
v0.9.0 - API Protocols (Q1 2026) ¶
GraphQL Support¶
Schema-first and code-first approaches.
from cello.graphql import Query, Schema, DataLoader
@Query
def users(info) -> list[User]:
return db.get_users()
schema = Schema().query(users).build()
app.mount("/graphql", schema)
Features: - Subscriptions via WebSocket - DataLoader for N+1 prevention - Federation support - Playground UI
gRPC Support¶
High-performance RPC with protobuf.
from cello.grpc import GrpcService, grpc_method, GrpcResponse
class UserService(GrpcService):
@grpc_method
async def GetUser(self, request):
return GrpcResponse.ok({"id": request.id, "name": "Alice"})
app.add_grpc_service(UserService())
Features: - Bidirectional streaming - gRPC-Web support - Reflection service - Interceptors
Message Queue Adapters¶
Event-driven architecture support.
from cello.messaging import kafka_consumer, Message, MessageResult
@kafka_consumer(topic="orders", group="processors")
async def process_order(message: Message):
data = message.json()
await process(data)
return MessageResult.ACK
Supported: - Apache Kafka - RabbitMQ - AWS SQS/SNS - Redis Streams
v0.10.0 - Advanced Patterns (Q1 2026) ¶
Event Sourcing¶
Event-driven persistence with aggregate roots, event replay, and snapshots.
from cello.eventsourcing import Aggregate, Event, event_handler, EventSourcingConfig
app.enable_event_sourcing(EventSourcingConfig(
storage="postgresql://localhost/events",
snapshot_interval=100,
enable_replay=True,
))
class OrderCreated(Event):
order_id: str
customer_id: str
class Order(Aggregate):
@event_handler(OrderCreated)
def on_created(self, event):
self.id = event.order_id
self.status = "created"
Features: - Aggregate root pattern - Event replay to rebuild state - Snapshot support for performance - PostgreSQL, MySQL, and in-memory backends - Event versioning and upcasting
CQRS¶
Command/query separation with dedicated buses.
from cello.cqrs import Command, Query, command_handler, query_handler, CqrsConfig
app.enable_cqrs(CqrsConfig(enable_event_sync=True))
class CreateOrderCommand(Command):
customer_id: str
items: list
@command_handler(CreateOrderCommand)
async def handle_create(command, db):
order = Order.create(command.customer_id, command.items)
await db.save(order)
return order.id
class GetOrderQuery(Query):
order_id: str
@query_handler(GetOrderQuery)
async def handle_get(query, read_db):
return await read_db.get_order(query.order_id)
Features: - Separate read/write models - CommandBus and QueryBus - Event-driven synchronization - Middleware support on buses
Saga Pattern¶
Distributed transaction coordination with compensation logic.
from cello.saga import Saga, SagaStep, SagaConfig
app.enable_sagas(SagaConfig(
storage="postgresql://localhost/sagas",
max_retries=3,
timeout=300,
))
class OrderSaga(Saga):
steps = [
SagaStep("reserve_inventory", reserve, compensate=release),
SagaStep("charge_payment", charge, compensate=refund),
SagaStep("ship_order", create_shipment, compensate=cancel_shipment),
]
Features: - Automatic compensation on failure - Persistent saga state for crash recovery - Configurable retry with exponential backoff - Timeout support
v1.0.1 - Production Ready (Q1 2026) ¶
Stable Release¶
First production-ready release with semantic versioning guarantees and major performance optimizations.
- API stability commitment (no breaking changes until v2.0)
- Handler metadata caching (async detection, DI params)
- Lazy body parsing, zero-copy responses, TCP_NODELAY
- Optimized release build configuration
- All 394 tests passing
v1.1.0+ - Future Enhancements (Planned)¶
OAuth2/OIDC Provider¶
Full OAuth2 server implementation.
Service Mesh Integration¶
Istio/Envoy support.
from cello.mesh import ServiceMesh
mesh = ServiceMesh(DiscoveryConfig(
registry="consul://localhost:8500"
))
Admin Dashboard¶
Real-time monitoring UI.
Multi-tenancy¶
Tenant isolation and data partitioning.
from cello.multitenancy import tenant_context
@app.middleware
async def tenant_middleware(request, call_next):
with tenant_context(request.headers["X-Tenant-ID"]):
return await call_next(request)
Feature Requests¶
Have a feature request? Submit it on GitHub Issues.
We prioritize features based on: - Community demand - Enterprise use cases - Technical feasibility - Alignment with project goals
Contributing¶
Help us build these features! See our Contributing Guide.
Priority areas: - OAuth2/OIDC Provider - Service Mesh Integration - Admin Dashboard - Multi-tenancy
Sources & Research¶
This roadmap is informed by best practices from: