# gurjyot-gurz/aws-stepfunctions-image-assembly architecture

> Architecture diagram of the GitHub repository gurjyot-gurz/aws-stepfunctions-image-assembly, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/gurjyot-gurz/aws-stepfunctions-image-assembly
- Repository: https://github.com/gurjyot-gurz/aws-stepfunctions-image-assembly

## Overview

This repository documents an event-driven image identity-verification pipeline: a user uploads an image, AWS starts a state-machine workflow, and face detection determines whether to create a thumbnail and persist metadata or send an alert. The README names implementation files, but they are absent from the supplied file tree, so internal component paths are null and the graph reflects documented relationships only.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_orchestration["Event orchestration"]
  node_eventbridge["EventBridge"]
  node_stepfunctions["Step Functions"]
  node_decision["Face decision"]
end

subgraph group_validation["Face validation"]
  node_face_lambda["Face detector"]
end

subgraph group_outcomes["Processing outcomes"]
  node_thumbnail_lambda["Thumbnail generator"]
  node_metadata_lambda["Metadata logger"]
  node_dynamodb[("Amazon DynamoDB")]
  node_sns["Amazon SNS"]
end

node_user(("User"))
node_s3[("Amazon S3")]
node_rekognition["Amazon Rekognition"]

node_user -->|"uploads image"| node_s3
node_s3 -->|"object-created event"| node_eventbridge
node_eventbridge -->|"starts execution"| node_stepfunctions
node_stepfunctions -->|"invokes"| node_face_lambda
node_face_lambda -->|"requests face detection"| node_rekognition
node_rekognition -->|"returns detection"| node_face_lambda
node_face_lambda -->|"returns result"| node_decision
node_decision -->|"face detected"| node_thumbnail_lambda
node_decision -->|"face detected"| node_metadata_lambda
node_decision -->|"no face: publish alert"| node_sns
node_thumbnail_lambda -->|"stores thumbnail"| node_s3
node_metadata_lambda -->|"stores metadata"| node_dynamodb

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_eventbridge,node_stepfunctions,node_decision,node_user toneBlue
class node_face_lambda,node_s3 toneAmber
class node_thumbnail_lambda,node_metadata_lambda,node_dynamodb,node_sns toneMint
class node_rekognition toneIndigo
```

## Components

### Event orchestration

- **EventBridge**
- **Step Functions**
- **Face decision**

### Face validation

- **Face detector**

### Processing outcomes

- **Thumbnail generator**
- **Metadata logger**
- **Amazon DynamoDB**
- **Amazon SNS**

### Other components

- **User**
- **Amazon S3**
- **Amazon Rekognition**

## Connections

- User → Amazon S3: uploads image
- Amazon S3 → EventBridge: object-created event
- EventBridge → Step Functions: starts execution
- Step Functions → Face detector: invokes
- Face detector → Amazon Rekognition: requests face detection
- Amazon Rekognition → Face detector: returns detection
- Face detector → Face decision: returns result
- Face decision → Thumbnail generator: face detected
- Face decision → Metadata logger: face detected
- Face decision → Amazon SNS: no face: publish alert
- Thumbnail generator → Amazon S3: stores thumbnail
- Metadata logger → Amazon DynamoDB: stores metadata
