Skip to content

Latest commit

 

History

History
60 lines (47 loc) · 1.46 KB

File metadata and controls

60 lines (47 loc) · 1.46 KB

graph LR %% Nodes subgraph "Client & API" U["User"] APIGW["API Gateway (REST)"] end

subgraph "Lambdas" BuildFn["Lambda: build-worker"] ReplicateFn["Lambda: replication-worker"] InvokerFn["Lambda: step-function-invoker (manual)"] end

subgraph "Buckets" GlobalS3["S3: global-builds"] RegionAS3["S3: region-a-builds"] RegionBS3["S3: region-b-builds"] end

subgraph "Workflow Orchestration" SFN["Step Functions: file-copy-workflow"] end

subgraph "Data Stores" DDB["DynamoDB: FileCopyTracking"] end

subgraph "Notifications" SNS["SNS: file-copy-failures"] end

%% API routes U -->|"POST /builds"| APIGW U -->|"POST /deploy"| APIGW

%% API -> Lambdas APIGW -->|"Lambda proxy"| BuildFn APIGW -->|"Lambda proxy"| ReplicateFn

%% Build path BuildFn -->|"PutObject (artifact)"| GlobalS3

%% Event trigger to replication GlobalS3 -. "S3:ObjectCreated .zip" .-> ReplicateFn

%% Replication lambda starts workflow ReplicateFn -->|"StartExecution"| SFN

%% Manual invocation path InvokerFn -->|"StartExecution (manual)"| SFN

%% Step Function actions SFN -->|"CopyObject (Map)"| RegionAS3 SFN -->|"CopyObject (Map)"| RegionBS3 SFN -->|"PutItem/UpdateItem"| DDB SFN -->|"Publish on failure"| SNS

%% Notes classDef note fill:#fff,stroke:#bbb,stroke-dasharray: 3 3,color:#333 N1["Notes:
- /builds uploads artifacts to global-builds
- S3 event triggers replication-worker
- State machine copies to regional buckets in parallel
- Tracks results in DynamoDB; publishes failures via SNS"]:::note