Architecture Overview
The Apostille system follows a serverless, event-driven architecture built on AWS.
High-Level Architecture
┌─────────────────┐ ┌─────────────────┐
│ Citizen Portal │ │ Admin Portal │
│ (Next.js) │ │ (Next.js) │
└────────┬────────┘ └────────┬────────┘
│ │
└───────────┬───────────┘
│
┌──────▼──────┐
│ API Gateway │
└──────┬──────┘
│
┌──────▼──────┐
│ Lambda │
│ Functions │
└──────┬──────┘
│
┌────────────────┼────────────────┐
│ │ │
┌───▼───┐ ┌─────▼─────┐ ┌─────▼─────┐
│DynamoDB│ │ S3 │ │Step Funct.│
└────────┘ └───────────┘ └───────────┘Key Components
Frontend Portals
- Citizen Portal - Public-facing Next.js app for document submission and tracking
- Admin Portal - Internal Next.js app for processing requests
Backend Services
- API Gateway - RESTful API with Cognito authorization
- Lambda Functions - Serverless compute for business logic
- DynamoDB - NoSQL database for all entities
- S3 - Document storage with presigned URLs
- Step Functions - Workflow orchestration
- EventBridge - Event bus for async processing
- SNS - Notification delivery
Design Principles
- Hexagonal Architecture - Clean separation of domain, application, and infrastructure layers
- Event-Driven - Loose coupling through events
- Serverless-First - No servers to manage
- Infrastructure as Code - All resources defined in CDK
Last updated on