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)

  1. 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
  2. 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
  3. 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:

  1. Frontend calls Backend REST API
  2. Backend stores data in DynamoDB
  3. DynamoDB change triggers a Java Lambda
  4. Java Lambda calls external systems (Apollo, FMC, SIM)
  5. Java Lambda publishes result to SNS
  6. SNS triggers more Lambda functions
  7. Eventually dashboard is updated
  8. 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