Serverless Event Flow
AWS Architecture Visualization from index.yml
Section titled “AWS Architecture Visualization from index.yml”This diagram represents the event-driven architecture defined in the index.yml file. It shows how data flows from a DynamoDB table through various AWS services.
Diagram
Section titled “Diagram”graph TD; %% Nodes Definition DDB["DB: casino-bets-production"]; STR["Stream (2023-11-23T14:32:11.298)"]; L_StreamProcessor["λ: CasinoBetsProducer"]; SNS_MainFanout["SNS: CasinoGameEvents-production.fifo"];
%% Path 1: Bet Settled SQS_BetSettled["SQS: CasinoBetSettledProducer-prod"]; L_BetSettled["λ: CasinoBetsSettledProducer"]; SNS_BongoEvents["SNS: BongoEvents-production"];
%% Path 2: Metrics SQS_Metrics["SQS: serverless-casino-metrics (queue)"]; L_Metrics["λ: serverless-casino-metrics (lambda)"]; TS_Metrics["Timestream: serverless-casino-metrics (db)"];
%% Path 3: Transaction Proxy SQS_TxProxy["SQS: TransactionProxy-prod"]; L_TxProxy["λ: TransactionProxy"];
%% Path 4: Firehose Writer SQS_FirehoseWriter["SQS: FirehoseWriter-prod"]; L_FirehoseWriter["λ: casinobets-to-firehose"]; FH_DataSink["Kinesis Firehose"];
%% Path 5: Transaction Writer SQS_TxWriter["SQS: TransactionWriter-prod"]; L_TxWriter["λ: TransactionWriter"]; SQL_TxData["MSSQL: BB_Transactions_Stream"];
%% Path 6: History Writer (Standard) SQS_HistoryStd["SQS: HistoryWriter-prod"];
%% Path 7: History Writer (FIFO) SQS_HistoryFifo["SQS: HistoryWriter-prod.fifo"]; L_HistoryWriter["λ: HistoryWriter"]; SNS_GamePopulated["SNS: CasinoGamePopulated-production.fifo"];
%% Connections DDB --> STR; STR --> L_StreamProcessor; L_StreamProcessor -->|"publishes to"| SNS_MainFanout;
SNS_MainFanout --> SQS_BetSettled; SQS_BetSettled --> L_BetSettled; L_BetSettled -->|"publishes to"| SNS_BongoEvents;
SNS_MainFanout --> SQS_Metrics; SQS_Metrics --> L_Metrics; L_Metrics -->|"writes to"| TS_Metrics;
SNS_MainFanout --> SQS_TxProxy; SQS_TxProxy --> L_TxProxy;
SNS_MainFanout --> SQS_FirehoseWriter; SQS_FirehoseWriter --> L_FirehoseWriter; L_FirehoseWriter -->|"writes to"| FH_DataSink;
SNS_MainFanout --> SQS_TxWriter; SQS_TxWriter --> L_TxWriter; L_TxWriter -->|"writes to"| SQL_TxData;
%% No Lambda defined for this SQS in the YAML SNS_MainFanout --> SQS_HistoryStd;
SNS_MainFanout --> SQS_HistoryFifo; SQS_HistoryFifo --> L_HistoryWriter; L_HistoryWriter -->|"publishes to"| SNS_GamePopulated;
%% Styling classDef dynamodb fill:#2E73B8,stroke:#1E5288,color:#fff,rx:5,ry:5; classDef stream fill:#4CAF50,stroke:#388E3C,color:#fff,rx:5,ry:5; classDef lambda fill:#FF9900,stroke:#E68A00,color:#000,rx:5,ry:5; classDef sns fill:#D82C20,stroke:#B71C1C,color:#fff,rx:5,ry:5; classDef sqs fill:#9C27B0,stroke:#7B1FA2,color:#fff,rx:5,ry:5; classDef timestream fill:#00BCD4,stroke:#0097A7,color:#000,rx:5,ry:5; classDef mssql fill:#795548,stroke:#5D4037,color:#fff,rx:5,ry:5; classDef firehose fill:#FF5722,stroke:#E64A19,color:#fff,rx:5,ry:5;
class DDB dynamodb; class STR stream; class L_StreamProcessor,L_BetSettled,L_Metrics,L_TxProxy,L_FirehoseWriter,L_TxWriter,L_HistoryWriter lambda; class SNS_MainFanout,SNS_BongoEvents,SNS_GamePopulated sns; class SQS_BetSettled,SQS_Metrics,SQS_TxProxy,SQS_FirehoseWriter,SQS_TxWriter,SQS_HistoryStd,SQS_HistoryFifo sqs; class TS_Metrics timestream; class SQL_TxData mssql; class FH_DataSink firehose;- DB: DynamoDB Table
- Stream: DynamoDB Stream / Kinesis Stream
- λ: AWS Lambda Function
- SNS: AWS Simple Notification Service Topic
- SQS: AWS Simple Queue Service Queue
- Timestream: AWS Timestream Database
- MSSQL: Microsoft SQL Server Database
- Kinesis Firehose: AWS Kinesis Data Firehose (implied destination)
Notes:
Section titled “Notes:”- The Lambda function names in the diagram (e.g., “CasinoBetsProducer”) are shortened versions of the names found in the YAML (e.g.,
BB_GamingEventFunctions_CasinoBetsProducer-production:production). - The SQS queue
SQS: HistoryWriter-proddoes not have a Lambda function explicitly defined as its consumer in the provided YAML structure, so it’s shown as a terminal point from the main SNS fan-out in this diagram. - The “Kinesis Firehose” node for the
FirehoseWriter-prodpath is an implied destination, as Lambda functions writing to Firehose are common.