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
ScheduledPublisherCloudWatch EventsTime-based event publishing using CloudWatch Events rules
HeartbeatCloudWatch EventsPeriodic heartbeat signals using CloudWatch Events
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/ # CloudWatch Events heartbeat
├── QueryDb/ # DynamoDB read model storage
├── QueryEngine/ # DynamoDB query execution
├── Runtime/ # Lambda runtime environment
├── ScheduledPublisher/ # CloudWatch Events scheduled publishing
├── StateTopic/ # DynamoDB Stream state publishing
└── Task/ # S3 task buckets