For: Amazon EPIC (Everyday Peak In Charge) internship
Purpose: Understand every file, every folder, every system in the EPIC project β from zero knowledge to internship-ready
Covers: JavaScript, React, TypeScript, Java, AWS CDK, DynamoDB, MySQL, SQS, SNS, Lambda, API Gateway, and all Amazon internal systems
π The EPIC Project Has 4 Main Parts
EPIC/
βββ EPICFrontend/ β React web app (what users see and click)
βββ EPICBackend/ β Node.js Lambda functions (REST APIs + DB logic)
βββ EPICBackendCDK/ β AWS CDK TypeScript (cloud infrastructure setup)
βββ EPICBackendTriggers/ β Java Lambda functions (automated background jobs)
Think of it like a restaurant:
EPICFrontend= The dining room (customers interact here)EPICBackend= The kitchen (processes orders, stores data)EPICBackendCDK= The building blueprints (sets up all the equipment)EPICBackendTriggers= The automated machines (run on schedule, do heavy lifting)
π Reading Order (Follow This Exactly)
π’ Phase 1 β Previously Created (HotwHelper Focus)
In the HOTW Java Guide (2_HOTW_Java_Guide/):
| # | File | What You Learn |
|---|---|---|
| 01 | 01_Java_Basics.md |
Java from zero: variables, classes, methods |
| 02 | 02_Java_Intermediate.md |
Exceptions, generics, streams, enums |
| 03 | 03_Libraries_And_Annotations.md |
Lombok, Jackson, AWS SDK |
| 04 | 04_HotwHelper_Deep_Dive.md |
Every HotwHelper file explained |
| 05 | 05_Full_System_Flow.md |
HOTW end-to-end flow |
π΅ Phase 2 β This Guide (Entire EPIC Project)
These files are in this guide (1_EPIC_Learning_Guide/):
| # | File | What You Learn | Priority |
|---|---|---|---|
| 01 | 01_JavaScript_Basics.md |
JS: variables, functions, async/await, classes | π΄ HIGH |
| 02 | 02_React_And_Redux.md |
React components, hooks, Redux state | π΄ HIGH |
| 03 | 03_TypeScript_And_CDK.md |
TypeScript types, AWS CDK stacks | π‘ MEDIUM |
| 04 | 04_EPICBackend_Deep_Dive.md |
All Node.js Lambda handlers and operations | π΄ HIGH |
| 05 | 05_EPICFrontend_Deep_Dive.md |
All React pages, components, API calls | π΄ HIGH |
| 06 | 06_CDK_Infrastructure_Deep_Dive.md |
All AWS stacks, queues, lambdas infrastructure | π‘ MEDIUM |
| 07 | 07_Java_Lambda_Handlers.md |
All Java handlers: Apollo, BAU, Milestone, FMC, etc. | π΄ HIGH |
| 08 | 08_Complete_Event_Lifecycle.md |
Full journey: Event created β Peak event β Descale | π΄ HIGH |
| 09 | 09_Database_And_APIs.md |
All DynamoDB tables + MySQL tables + API reference | π‘ MEDIUM |
| 10 | 10_AWS_Services_Guide.md |
SQS, SNS, DynamoDB, Lambda, API Gateway explained | π‘ MEDIUM |
| 11 | 11_Internship_Survival_Guide.md |
Daily tasks, debugging, what to ask mentor | β STAR |
ποΈ Complete Project Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β USER (Service Owner / Leader) β
β Uses EPIC Frontend (React App) β
βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ
β HTTPS calls
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β API Gateway (REST API) β
β /service, /fleet, /event, /hotw, /projection β
ββββββββββ¬βββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββ
β triggers β triggers
βΌ βΌ
βββββββββββββββββββββββ βββββββββββββββββββββββββββ
β EPICBackend β β EPICBackendTriggers β
β (Node.js Lambda) β β (Java Lambda) β
β β β β
β β’ Fleet CRUD β β β’ HotwHandler β
β β’ Service CRUD β β β’ ApolloHandler β
β β’ Event CRUD β β β’ MilestoneHandlers β
β β’ HOTW APIs β β β’ BAU Handlers β
β β’ Projection APIs β β β’ FMC Handler β
β β’ Throttling APIs β β β’ FLO Handler β
β β’ Ticket APIs β β β’ Throttling Executor β
βββββββββββ¬ββββββββββββ ββββββββββββ¬βββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AWS Infrastructure β
β DynamoDB (NoSQL) β MySQL/Aurora (SQL) β SQS Queues β SNS β
β βββββββββββββ β βββββββββββββββ β βββββββββββ β βββ β
β FleetTable β hotwdashboard β AtomicHOTW β Milestoneβ
β ServiceTable β hotwexecution β FMC queue β SNS β
β EventTable β asgdetails β Apollo queueβ β
β EventPlanTable β capacityoverride β BAU queue β β
β ProjectionsTable β fulfillmentdetails β 30+ queues β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Amazon Internal Systems β
β Apollo (config) β FMC (hardware orders) β SIM (tickets) β Axon β
β EAP (ASG enroll)β SPCO (capacity req) β PMET (metrics)β Gizmo β
β CloudTune (ML) β ScalingPlanner β TES (events) β FLO β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π File Count Summary
| Module | Language | Files | Purpose |
|---|---|---|---|
| EPICFrontend | React/JSX | ~120 files | UI pages, components, state |
| EPICBackend | Node.js/JS | ~65 files | REST APIs, DB operations |
| EPICBackendCDK | TypeScript | ~50 files | AWS infrastructure as code |
| EPICBackendTriggers | Java | ~200+ files | Background automation jobs |
π― What EPIC Actually Does (30 Seconds Summary)
-
Before a Peak Event (Prime Day, Black Friday, etc.):
- Teams enter their traffic projections (how many requests per minute they expect)
- EPIC calculates how many servers each team needs
- EPIC automatically places hardware orders via FMC/SPCO
- EPIC opens SIM tickets to track progress
- EPIC checks that all βmilestonesβ are complete before the event
-
During the Peak:
- EPIC monitors if enough servers are available
- EPIC handles βemergentβ orders if servers are running short
- EPIC manages throttling configurations in Gizmo/SDC
-
After the Peak:
- EPIC recommends descaling (returning extra servers)
- EPIC automates the descale orders
- EPIC tracks fulfillment of descale orders
π Key Terms You Must Know Before Reading Anything
| Term | Meaning |
|---|---|
| Fleet | A group of servers running the same service in one region (e.g., βRIPE-NAβ = RIPE service in North America) |
| Service | A microservice at Amazon (e.g., βFORTRESSServiceβ) |
| Event | A peak event like PrimeDay2024 or BlackFriday2024 |
| EventPlan | The milestone tracking checklist for one fleet Γ one event |
| HOTW | Head of the Week β weekly automated hardware ordering system |
| ASG | Auto Scaling Group β AWS group of EC2 servers that auto-scales |
| Apollo | Amazonβs config management system β also stores current host counts |
| FMC | Fulfillment Management Console β tracks hardware delivery |
| SPCO | Service Provider Capacity Override β hardware request sent to AWS |
| EAP | Emergency Access Protocol β ASG enrollment in ScalingPlanner |
| SIM | Amazonβs internal ticketing system (like JIRA) |
| TPM | Transactions Per Minute β measure of traffic load |
| BAU | Business As Usual β normal (non-peak) capacity |
| Milestone | A checkpoint in the peak readiness process |
| Axon | Amazonβs traffic metrics system |
| PMET | Performance Metric β used to track service metrics |
| Gizmo/SDC | Throttling management systems |
| FLO | Fleet Light Operations β host management tool |
| CloudTune | ML-based capacity planning system |
π‘ How the 4 Modules Talk to Each Other
EPICFrontend
β
β HTTP calls (via API Gateway)
βΌ
EPICBackend (Node.js)
β β
β β Stores/reads data
βΌ βΌ
DynamoDB MySQL/Aurora
β
β DynamoDB Streams trigger Java Lambda
βΌ
EPICBackendTriggers (Java)
β
β SQS messages trigger more Java Lambdas
βΌ
Amazon Internal Systems (Apollo, FMC, SPCO, SIM...)
Key insight: When a user clicks a button in the frontend:
- Frontend calls Backend REST API
- Backend stores data in DynamoDB
- DynamoDB change triggers a Java Lambda
- Java Lambda calls external systems (Apollo, FMC, SIM)
- Java Lambda publishes result to SNS
- SNS triggers more Lambda functions
- Eventually dashboard is updated
- Frontend polls and shows updated data
π Start Here Based on Your Task
| βI need to fix/understandβ¦β | Read this first |
|---|---|
| HOTW hardware ordering | 04_HotwHelper_Deep_Dive.md (HOTW guide) + 07_Java_Lambda_Handlers.md |
| A React page | 02_React_And_Redux.md + 05_EPICFrontend_Deep_Dive.md |
| A backend API | 01_JavaScript_Basics.md + 04_EPICBackend_Deep_Dive.md |
| Infrastructure change | 03_TypeScript_And_CDK.md + 06_CDK_Infrastructure_Deep_Dive.md |
| Milestone/event flow | 08_Complete_Event_Lifecycle.md |
| Database question | 09_Database_And_APIs.md |
| AWS service question | 10_AWS_Services_Guide.md |
| Everything | Read in order 01 β 11 |