Skip to content

omerbacher/EventDriven-Order-Management-AWS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Event-Driven Serverless Order Management System


Overview

A fully serverless, event-driven order management system built on AWS.

This project demonstrates architectural separation, asynchronous event propagation, AI-assisted validation, and cloud-native service orchestration using managed AWS components.

The focus is not only CRUD functionality — but system design discipline and distributed flow control.


Architecture

Conceptual Layers

Entry

  • AWS Amplify (Frontend Hosting)
  • Amazon API Gateway

Compute

  • Independent AWS Lambda functions
  • Single-responsibility execution units

Storage

  • Amazon DynamoDB (Primary data store)
  • Amazon S3 (Archival & reports)

Event

  • Amazon SNS for asynchronous propagation

Deletion events are published to SNS and processed asynchronously by dedicated handlers, preventing tight coupling between business logic and secondary workflows.


Intelligent Validation (Amazon Rekognition)

Image uploads are analyzed using Amazon Rekognition before order confirmation.

If the detected object does not match the provided description, a confidence-based validation warning is shown.

This integrates AI-based verification directly into a serverless backend pipeline.


Event-Driven Deletion Flow

  1. API Gateway receives delete request
  2. Lambda removes record from DynamoDB
  3. Lambda publishes event to SNS
  4. SNS asynchronously triggers:
    • Archival Lambda → stores deleted order in S3
    • Email notifications

Core logic remains isolated and non-blocking.


PDF Report Generation

Deleted orders stored in S3 can be aggregated into a dynamically generated PDF.

  • Generated by dedicated Lambda
  • Reads archival data
  • Produces PDF
  • Returns secure presigned URL

The reporting workflow is fully decoupled from the CRUD system.


Lambda Structure

lambdas/
├── create_order
├── update_order
├── delete_order
├── get_orders
├── get_order_by_id
├── recognize_uploaded_image
├── on_order_deleted
├── archive_deleted_orders
├── generate_pdf_report
├── subscribe_email
└── unsubscribe_email

Each Lambda is independently deployable and responsibility-scoped.


Engineering Principles

  • Event-driven architecture
  • Asynchronous SNS-based processing
  • Service responsibility separation
  • Stateless execution
  • Managed service composition
  • AI integration inside backend validation
  • Secure presigned access control
  • Cloud-native design patterns

Technologies

  • AWS Lambda
  • Amazon API Gateway
  • Amazon DynamoDB
  • Amazon SNS
  • Amazon S3
  • Amazon Rekognition
  • AWS Amplify
  • Python (boto3)
  • ReportLab

Summary

This project demonstrates how distributed serverless services can be composed into a coherent, loosely coupled backend system.

It highlights architectural discipline, asynchronous processing, and AI-enhanced validation within a fully managed AWS environment.

About

Serverless event-driven backend on AWS using API Gateway, Lambda, DynamoDB, SNS, S3, AI validation (Rekognition), and asynchronous PDF generation.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages