Infrastructure & Providers
Reventless is a provider-agnostic event-sourced CQRS framework. The core reventless-core package defines components and abstract adapter interfaces but contains no infrastructure code. Providers are packages that implement these adapter interfaces for a specific platform.
Deploying an app? Jump to AWS Provider → AWS Get Started and the Deployment Guide. For local runs, see the Local Provider.
Writing a new provider? Start at Scaffolding a Provider Package and the Adapter Pattern.
What a Provider Does
A provider package:
- Implements adapter interfaces — provides concrete implementations of
EventLog_Adapter.Storage,CommandTopic_Adapter.Channel,EventTopic_Adapter.Publisher, and other adapter interfaces defined inreventless-core - Provides pre-configured builders — exports
Makefunctors that wire the framework builders with provider-specific adapters, so application developers get a simple API - Manages infrastructure — creates the actual resources (tables, queues, topics, functions) needed to run the application
The Two-Layer Model
Provider packages implement two layers:
- Deploy-time — creates infrastructure resources and returns
Pulumi.Output.t-wrapped identifiers (ARNs, URLs, table names) - Runtime — implements the actual data access logic that executes within handlers, consuming the resolved deploy-time values
For a deep dive into how this separation works, see the Adapter Pattern.
Available Providers
Local
Package: reventless-local
The Local provider runs everything in a single process. It offers two interchangeable
backends — an in-memory store and a SQLite store (selected via Backend.Memory /
Backend.Sqlite or the REVENTLESS_LOCAL_BACKEND env var). No cloud infrastructure is needed.
Use cases:
- Local development and rapid prototyping
- Unit and integration testing with Jest
- Exploring the framework without cloud credentials
The Local provider includes a shared event bus (LocalBus), a built-in GraphQL server, and an MCP server for AI-native access. All adapter interfaces are fully implemented.
Local Provider Documentation →
AWS
Package: reventless-aws
The AWS provider is the production-ready implementation, mapping Reventless components to AWS serverless services:
| Component | AWS Service |
|---|---|
| EventLog | DynamoDB |
| CommandTopic | SQS FIFO |
| EventTopic | SNS |
| QueryDb | DynamoDB |
| EventCollector | DynamoDB Streams / SQS |
| Task | S3 |
| Runtime | Lambda |
Future Providers
The adapter pattern makes it possible to implement Reventless on any serverless platform. Potential future providers include:
- Azure — Azure Functions, Cosmos DB, Service Bus, Event Grid
- GCP — Cloud Functions, Firestore, Pub/Sub, Cloud Tasks
- Cloudflare Workers — Workers, Durable Objects, Queues, R2
Community contributions are welcome. See Scaffolding a Provider Package for how to create a new provider, and the Adapter Pattern for the full interface checklist.