Alpha Version: You are viewing the ALPHA documentation. This is an experimental version and may contain breaking changes.
Skip to main content

AWS Adapters

Overview​

The reventless-aws package provides AWS-specific implementations of the adapter interfaces defined in the core reventless framework. Adapters bridge the gap between Reventless's provider-agnostic components and AWS infrastructure services.

Reventless components are designed to be cloud-provider-agnostic. The reventless package defines abstract adapter interfaces, while reventless-aws implements these interfaces using AWS services like DynamoDB, SQS, SNS, S3, and Lambda.

d2 diagram

AWS Service Mappings​

Reventless components map to AWS services as follows:

ComponentAWS ServicePurpose
EventLogDynamoDBAppend-only event storage with partition key id and sort key sequenceNr
CommandTopicSQS FIFOCommand message queues with FIFO ordering and deduplication
EventTopicSNS / SNS FIFOEvent publishing with fan-out to multiple subscribers
QueryDbDynamoDBRead model storage with configurable indexes and TTL
EventCollectorDynamoDB Streams / SQSConsumes events from EventLog or EventTopic
TaskS3Stores task data; S3 events trigger Lambda on object create/delete
CommandGeneratorAppSyncGraphQL API for command generation with DynamoDB resolvers
CounterDynamoDB StreamsAtomic counter updates triggered by DynamoDB stream events
ScheduledPublisherEventBridgeTime-based event publishing using EventBridge rules
HeartbeatEventBridgePeriodic heartbeat signals using EventBridge
RuntimeLambdaExecution environment for all runtime operations

Adapter Details​

The following AWS adapters are available. For how adapters are structured internally (deploy-time vs runtime, the make pattern, Pulumi.Output.t), see AWS Architecture.

Core Event Sourcing Adapters​

Data Storage Adapters​

Supporting Adapters​

Folder Structure​

reventless-aws/src/adapter/
├── AWS.res # AWS service constants and principals
├── AWS_Tags.res # Tagging utilities
├── Adapter_Helpers.res # Shared adapter utilities
├── Cloner/ # Fargate-based data cloning
├── CommandGenerator/ # AppSync resolvers for commands
├── CommandTopic/ # SQS-based command channels
├── Counter/ # DynamoDB Stream counter handlers
├── EventCollector/ # DynamoDB Stream / SQS event collection
├── EventLog/ # DynamoDB event storage
├── EventTopic/ # SNS event publishing
├── Heartbeat/ # EventBridge heartbeat
├── QueryDb/ # DynamoDB read model storage
├── QueryEngine/ # DynamoDB query execution
├── Runtime/ # Lambda runtime environment
├── ScheduledPublisher/ # EventBridge scheduled publishing
├── StateTopic/ # DynamoDB Stream state publishing
└── Task/ # S3 task buckets