-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathterms.txt
More file actions
1384 lines (1235 loc) Β· 101 KB
/
Copy pathterms.txt
File metadata and controls
1384 lines (1235 loc) Β· 101 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
========== WEBSITE & HOSTING ==========
Frontend β The part you see and click on (browser)
Backend β The part that thinks and decides (server)
Database (DB) β Where all data lives forever (MySQL)
Redis β A fast temporary memory for often-used data
Cache β Storing stuff in Redis so you don't hit the slow database
VPS β A rented computer that's always on ($3-4/mo)
Docker β A tool to package your app so it runs the same everywhere
API β A way for frontend to talk to backend
Server β Any computer that's always on and connected to internet
Hosting β Renting space on someone else's server
Deploy β Uploading your code to a server so the world can use it
Connection pool β A batch of pre-opened database connections for speed
Concurrent users β Number of people using your site at the exact same moment
Query β A question you ask the database (e.g., "find all whey proteins")
========== WEB TECHNOLOGIES ==========
HTML β The structure of a webpage (headings, paragraphs, images)
CSS β The styling of a webpage (colors, fonts, layout)
JavaScript β The programming language that makes webpages interactive
TypeScript β JavaScript with extra safety features to catch bugs early
Node.js β A way to run JavaScript on a server instead of a browser
React β A library for building interactive frontend UIs
Next.js β A framework built on React that handles routing, API, and more
Framework β A pre-built structure that saves you from writing everything from scratch
Library β A collection of reusable code you can plug into your project
Package β A chunk of code someone else wrote that you can download and use
npm β A marketplace and installer for JavaScript packages
========== API & NETWORKING ==========
API route β A special URL on your backend that returns data instead of a webpage
JSON β A simple text format to send data between frontend and backend
REST β A standard way to design API routes (GET, POST, PUT, DELETE)
HTTP β The protocol browsers use to talk to servers
HTTPS β HTTP but encrypted (the lock icon in your browser)
URL β The web address you type in the browser (amazon.com)
Domain β The human-readable name of a website (google.com)
DNS β The phonebook that converts domain names to server IP addresses
IP address β The numerical address of a server on the internet
Port β A numbered door on a server (3306 = MySQL, 80 = HTTP, 443 = HTTPS)
Environment variable β Secret values stored outside your code (passwords, API keys)
.env file β A local file that holds your environment variables
========== DATABASE TERMS ==========
ORM β A tool that lets you talk to the database using code instead of writing SQL
SQL β The language used to talk to relational databases
Table β A collection of related data in a database (like an Excel sheet)
Row β A single record in a database table (one product, one user)
Column β A single field in a database table (name, price, category)
Primary key β A unique ID that identifies each row in a table
Foreign key β A column that links one table to another (product β brand)
Index β A speed-boost for database searches (like a book's index)
Migration β A script that changes your database schema over time
Schema β The structure/blueprint of your database (tables, columns, relationships)
Seed β Adding initial data to a fresh database (categories, retailers)
Transaction β A group of database operations that must all succeed or all fail together
JOIN β Combining data from two or more tables in a single query
Trigger β An automatic action that runs when something happens in the database
Stored procedure β A saved set of SQL commands you can call by name
========== DEVELOPMENT ==========
index.html β The default file a web server serves when you visit a URL
localhost β A special address that points to your own computer
Production β The live version of your website that real users see
Development β The version you work on locally on your computer
Staging β A test version that mirrors production for final testing
CI/CD β Automatic testing and deployment when you push code (GitHub Actions)
========== GIT & GITHUB ==========
Git β A tool that tracks changes to your code over time
GitHub β A website that stores your Git repositories in the cloud
Repository β A folder containing your project with full version history
Commit β A saved snapshot of your code at a point in time
Branch β A separate version of your code for working on features safely
Merge β Combining changes from one branch into another
Pull request β A request to merge your changes, often reviewed by teammates
Push β Uploading your local commits to GitHub
Pull β Downloading the latest changes from GitHub to your computer
Clone β Downloading a whole repository for the first time
SSH key β A secure way to authenticate to GitHub without a password
========== BUILD & DEPLOY ==========
Build β Converting your source code into optimized production files
Compile β Converting human-readable code into machine-executable code
Minify β Removing unnecessary characters from code to make it load faster
Bundle β Combining many small files into fewer larger files for faster loading
CDN β A network of servers around the world that serve static files fast
Load balancer β A tool that distributes incoming traffic across multiple servers
Scaling β Adding more servers when traffic increases
Horizontal scaling β Adding more machines to handle more users
Vertical scaling β Giving a single machine more RAM/CPU
Latency β The time it takes for data to travel from point A to point B
Bandwidth β How much data can be transferred per second
Throughput β How many requests your system can handle per second
Rate limiting β Blocking users who make too many requests too fast
========== AUTHENTICATION & SECURITY ==========
Authentication β Verifying who a user is (login/password)
Authorization β Verifying what a user is allowed to do
JWT β A token that proves a user is logged in without asking for password again
Session β A temporary record of a logged-in user stored on the server
Cookie β A small piece of data stored in the browser to remember you
OAuth β Logging in with Google/Facebook/GitHub instead of a password
Middleware β Code that runs between the request and the response (checking auth, logging)
Webhook β A URL that another service calls when something happens (payment confirmed)
WebSocket β A persistent connection for real-time data (chat, live notifications)
========== RENDERING ==========
SSR β Server-Side Rendering β generating the HTML on the server before sending it
SSG β Static Site Generation β pre-building HTML pages at build time
CSR β Client-Side Rendering β generating HTML in the browser using JavaScript
ISR β Incremental Static Regeneration β SSG but pages rebuild when data changes
========== SEO & ANALYTICS ==========
SEO β Making your site rank higher in Google search results
Meta tags β Hidden HTML tags that tell Google what your page is about
Sitemap β An XML file listing all pages on your site for Google
Analytics β Tracking how many users visit and what they do
A/B testing β Showing two versions of a page to see which performs better
========== HTTP BASICS ==========
CRUD β Create, Read, Update, Delete β the four basic data operations
SSL/TLS β The technology that encrypts data between browser and server
CORS β A security mechanism that blocks one website from calling another
CSRF β A type of attack where a malicious site makes requests on your behalf
XSS β A type of attack where malicious code is injected into a webpage
SQL injection β A type of attack where malicious SQL is injected via user input
Sanitize β Cleaning user input to remove dangerous content
Validate β Checking that user input meets requirements (valid email, not empty)
========== CODING CONCEPTS ==========
Logging β Recording events (errors, requests) for debugging
Debugging β Finding and fixing bugs in your code
Error handling β Code that gracefully handles failures instead of crashing
Try/catch β A pattern to catch and handle errors without crashing
Throw β Deliberately creating an error in your code
Promise β A JavaScript object representing a future value (async operation)
Async/await β A cleaner way to write code that waits for something (database, API)
Callback β A function passed to another function to run later
Event loop β The mechanism by which Node.js handles multiple tasks without blocking
Blocking β Code that stops everything else from running until it finishes
Non-blocking β Code that lets other things run while waiting (async)
========== DOCKER ==========
Container β A lightweight, isolated environment to run an application
Image β A snapshot of a container's filesystem (blueprint for containers)
Dockerfile β A recipe file that defines how to build a Docker image
docker-compose β A tool to run multiple containers together (MySQL + Redis + your app)
Volume β Persistent storage for Docker containers (data survives restart)
Port mapping β Connecting a container port to your computer port (-p 3306:3306)
========== SYSTEM ADMIN ==========
Environment β The context your app runs in (local, staging, production)
Config β Settings that change between environments (database URLs, API keys)
CLI β Command Line Interface β typing commands instead of clicking buttons
GUI β Graphical User Interface β clicking buttons instead of typing commands
Terminal β The black window where you type commands
Shell β The program inside the terminal that interprets your commands (bash, zsh)
PATH β A list of folders your terminal searches when you type a command
Process β A running program on your computer or server
Daemon β A background process that keeps running (MySQL, Redis)
PID β Process ID β a number that identifies a running process
Cron job β A scheduled task that runs automatically (backup every night at 2 AM)
Crontab β The file that lists all cron jobs
systemd β The Linux system that starts/stops services on boot
Swap β Using hard drive space as extra RAM when memory is full
========== HARDWARE ==========
SSD β A fast type of hard drive (no moving parts)
RAM β Temporary memory your computer uses for active tasks
CPU β The processor β the brain that executes instructions
vCPU β A virtual CPU core on a VPS
Uptime β How long a server has been running without restart
SLA β A guarantee from a provider about uptime percentage (99.9%)
========== FILE STORAGE ==========
S3 β Amazon's cloud storage service (for images, backups, files)
Cloudinary β A service that hosts and transforms images for you
ImgBB β A free image hosting service
WebP β A modern image format that's smaller than PNG/JPEG
Lazy loading β Loading images only when they're about to appear on screen
========== UI/UX ==========
Pagination β Splitting a long list into pages (1, 2, 3...)
Infinite scroll β Loading more items as the user scrolls down
Debounce β Waiting until the user stops typing before searching (search box)
Throttle β Limiting how often a function can run (scroll event)
Polyfill β Code that adds modern features to old browsers
Transpile β Converting modern JavaScript to older JavaScript for compatibility
Tree shaking β Removing unused code during the build to reduce file size
Hot reload β Automatically updating the browser when you save code changes
========== CODE QUALITY ==========
Linting β Automatically checking your code for errors and style issues
Prettier β A tool that automatically formats your code consistently
ESLint β A tool that catches bugs and style problems in JavaScript
Husky β A tool that runs checks before you commit code
Semver β A version numbering system: major.minor.patch (2.1.0)
Breaking change β A new version that requires you to change your code
Deprecated β A feature that still works but is scheduled for removal
Legacy β Old code that still works but is no longer maintained
Refactor β Rewriting code to be better without changing what it does
Technical debt β Shortcuts in code that will need fixing later
Spaghetti code β Messy, tangled code that's hard to understand
Boilerplate β Repetitive code that needs to be written for many features
========== ARCHITECTURE ==========
Monolith β One big application that does everything
Microservices β Many small applications that each do one thing and talk to each other
Serverless β Running code without managing a server (Vercel, AWS Lambda)
Edge function β Code that runs in CDN data centers closest to the user
JAMstack β A modern architecture: JavaScript + APIs + pre-built HTML
MVC β Model-View-Controller β a pattern to organize code
Singleton β A single shared instance of something (database connection pool)
Dependency injection β Passing dependencies into a class instead of creating them inside
Factory pattern β A function that creates and returns objects
Observer pattern β One thing notifies many others when something happens
Pub/sub β Publish/Subscribe β senders and receivers don't know each other
========== COMMUNICATION PATTERNS ==========
Webhook β An HTTP callback β service A calls service B when something happens
WebSocket β Two-way real-time communication channel
SSE β Server-Sent Events β server pushes data to browser one-way
Polling β Asking the server repeatedly for new data (inefficient)
Rate limit β Max requests per minute/second a server allows
========== HTTP STATUS CODES ==========
200 β "OK" β everything worked
201 β "Created" β a new resource was created
301 β "Moved Permanently" β the URL has changed
304 β "Not Modified" β use your cached version
400 β "Bad Request" β you sent something the server didn't understand
401 β "Unauthorized" β you need to log in first
403 β "Forbidden" β you're logged in but not allowed to do this
404 β "Not Found" β the page/URL doesn't exist
429 β "Too Many Requests" β you hit the rate limit
500 β "Internal Server Error" β something broke on the server
502 β "Bad Gateway" β server got an invalid response from another server
503 β "Service Unavailable" β server is temporarily down or overloaded
504 β "Gateway Timeout" β one server waited too long for another
========== COMPUTER SCIENCE CONCEPTS ==========
Idempotent β An operation that produces the same result no matter how many times you run it
Stateful β The server remembers information about the user between requests
Stateless β Each request is independent β server doesn't remember previous ones
Hashing β Converting data into a fixed-length string that can't be reversed (passwords)
Encryption β Scrambling data so only someone with the key can read it
Salt β Random data added to a password before hashing to make it more secure
Plaintext β Readable, unencrypted text (bad for passwords)
Base64 β A way to encode binary data (images) as text for transfer
UTF-8 β A character encoding that supports all languages and emojis
ASCII β A basic character encoding for English letters, numbers, and symbols
Unicode β A standard that assigns a unique number to every character in every language
Regex β A pattern for matching text (finding emails, phone numbers in strings)
========== JAVASCRIPT DATA TYPES ==========
Boolean β A value that is either true or false
Null β No value β intentionally empty
Undefined β A variable that was declared but never given a value
NaN β "Not a Number" β a result of an invalid math operation
Array β An ordered list of items [1, 2, 3]
Object β A collection of key-value pairs {name: "John", age: 30}
String β A piece of text β "hello world"
Number β A numeric value β 42, 3.14
Integer β A whole number β 42, no decimals
Float β A number with decimals β 3.14
========== JAVASCRIPT FUNDAMENTALS ==========
Function β A reusable block of code that does one thing
Parameter β A variable a function receives when called
Argument β The actual value you pass to a function when calling it
Return value β The output a function gives back
Scope β Where a variable is accessible in your code (inside/outside functions)
Global β A variable accessible from anywhere in your code
Local β A variable accessible only within a specific function or block
Closure β A function that remembers variables from where it was created
Recursion β A function that calls itself (like Russian nesting dolls)
Loop β Repeating an action multiple times (for, while)
Conditional β Code that runs only if something is true (if/else)
Switch β A cleaner way to write many if/else conditions for one value
Iteration β One cycle of a loop
Infinite loop β A loop that never ends (crashes your program)
Break β Exiting a loop early
Continue β Skipping the rest of the current loop iteration and moving to the next
Variable β A named container that holds a value
Constant β A variable that cannot be changed after being set
Data type β The kind of value (string, number, boolean, object, array)
========== JAVASCRIPT OPERATORS ==========
Template literal β A JavaScript string with embedded variables using backticks
Concatenation β Joining strings together β "Hello " + "World"
Interpolation β Inserting variables directly into a string β `${name}`
Operator β A symbol that performs an operation β +, -, *, /, =
Comparison β Checking if two values are equal/not equal/greater/less
Logical operator β Combining conditions β && (AND), || (OR), ! (NOT)
Ternary β A shorthand if/else β condition ? valueIfTrue : valueIfFalse
Spread operator β Expanding an array or object into individual elements β ...arr
Destructuring β Extracting values from arrays/objects into variables in one line
Optional chaining β Safely accessing nested properties without crashing β ?.
Nullish coalescing β Using a default value only if null/undefined β ??
========== MODULES & PACKAGES ==========
Module β A file that exports code for other files to import
Import β Bringing code from another file into the current file
Export β Making code available for other files to use
Default export β The main thing a module exports
Named export β A specific named thing a module exports
Package.json β The file that describes your project and its dependencies
Node_modules β The folder where all downloaded packages live
Dependency β A package your project needs to work
Dev dependency β A package needed only during development (not in production)
Peer dependency β A package your project expects the host project to provide
Lock file β A file that locks exact versions of every dependency
Caret (^) β Allow minor and patch updates but not major ones
Tilde (~) β Allow only patch updates
Script β A command defined in package.json that you can run with npm run
========== PACKAGE MANAGERS ==========
npx β A tool that runs a package without installing it globally
Global install β Installing a package so it's available everywhere on your system
Local install β Installing a package only for the current project
Monorepo β A single repository containing multiple projects/packages
Workspace β A way to manage multiple packages in one repository
pnpm β A faster, disk-space-efficient alternative to npm
Yarn β Another alternative to npm (similar but different)
Bun β A super-fast JavaScript runtime that also replaces npm
Runtime β The program that executes your code (Node.js, Bun, Deno)
Deno β A modern JavaScript runtime made by the creator of Node.js
========== CODE PATTERNS ==========
Polyfill β Code that adds a missing feature to older environments
Shim β A small piece of code that intercepts and modifies behavior
Wrapper β Code that adds functionality around an existing function or library
Adapter β Code that lets two incompatible things work together
Plugin β Additional code that extends the functionality of a tool
Extension β Same as plugin β adds features to a browser or editor
Interceptor β Code that "catches" requests or responses to modify them
Guard β Code that checks conditions before allowing access (auth guard)
Service β A reusable class or module that handles a specific business operation
Controller β In MVC, the part that handles incoming requests and returns responses
========== ROUTING ==========
Route β A URL pattern mapped to a specific handler function
Router β Code that matches URLs to their handlers
Handler β The function that processes a request for a specific route
Endpoint β A specific URL that accepts API requests
Query string β Extra data appended to a URL β ?search=phone&page=2
Path parameter β A variable in the URL path β /products/:id
Request body β Data sent with a POST/PUT request (usually JSON)
Request headers β Metadata sent with a request (auth tokens, content type)
Response headers β Metadata the server sends back (caching info, content type)
========== HTTP HEADERS ==========
Content-Type β Header that tells what format the data is in (application/json)
Authorization β Header that carries authentication tokens (Bearer <token>)
User-Agent β Header that identifies the client (browser, mobile app)
Status code β A number indicating the result of an HTTP request (200, 404, 500)
========== HTTP METHODS ==========
GET β HTTP method to retrieve data (read)
POST β HTTP method to create new data (write)
PUT β HTTP method to replace data entirely (update)
PATCH β HTTP method to partially update data
DELETE β HTTP method to remove data
HEAD β HTTP method to get headers only, no body
OPTIONS β HTTP method to check what methods are allowed (CORS preflight)
========== BACKGROUND JOBS ==========
CRON β Scheduled tasks (midnight backup, daily email)
Batch β Processing many items together instead of one by one
Queue β A list of tasks waiting to be processed (sending emails, resizing images)
Worker β A process that picks up and completes tasks from a queue
Job β A single unit of work in a queue
Dead letter queue β A queue for failed jobs that need manual inspection
========== RESILIENCE ==========
Rate limiter β Prevents too many requests from the same user in a short time
Circuit breaker β Stops calling a failing service to prevent cascading failures
Retry β Trying an operation again after it fails
Exponential backoff β Increasing wait time between retries (1s, 2s, 4s, 8s...)
Timeout β Giving up on an operation if it takes too long
Health check β A simple endpoint that tells if your service is alive (/api/health)
Probe β An automated check that monitors if a service is healthy
Heartbeat β A periodic signal that says "I'm still alive"
========== NETWORKING ==========
Firewall β Software that blocks unwanted network traffic
Proxy β An intermediary server between client and destination
Reverse proxy β A server that sits in front of your app (Nginx, Caddy)
Nginx β A popular web server and reverse proxy (pronounced "engine-x")
Caddy β A simpler web server with automatic HTTPS
Apache β Another popular web server (older than Nginx)
========== SSL / HTTPS ==========
SSL certificate β A file that enables HTTPS on your domain
Let's Encrypt β A free automated SSL certificate provider
Certbot β A tool that automatically gets and renews Let's Encrypt certificates
Wildcard certificate β An SSL cert that covers all subdomains (*.yoursite.com)
Self-signed certificate β An SSL cert you create yourself (dev only, not trusted by browsers)
HTTPS redirect β Automatically sending HTTP traffic to HTTPS
HSTS β A header that tells browsers to always use HTTPS for your site
========== SECURITY THREATS ==========
DDoS β Distributed Denial of Service β overwhelming a server with traffic to take it down
Bot β An automated program that visits websites (good: Googlebot, bad: scrapers)
========== SEARCH ENGINES ==========
Crawler β A bot that systematically visits pages to index them (Google, Bing)
Robots.txt β A file that tells crawlers which pages they can/can't visit
Sitemap.xml β A file that lists all pages on your site for search engines
Canonical URL β The official URL for a page when duplicate content exists
Noindex β A meta tag that tells Google not to include a page in search results
Nofollow β A link attribute that tells Google not to pass SEO value
Open Graph β Meta tags that control how your page looks when shared on social media
Schema.org β Structured data markup that helps Google understand your content
Rich snippet β Enhanced Google search results with stars, prices, images
========== ACCESSIBILITY ==========
ALT text β Descriptive text for images (accessibility + SEO)
Accessibility β Making your site usable by people with disabilities
ARIA β HTML attributes that improve accessibility for screen readers
Screen reader β Software that reads webpages aloud for visually impaired users
Contrast ratio β The difference between text color and background color
========== RESPONSIVE DESIGN ==========
Responsive design β A website that looks good on all screen sizes (phone, tablet, desktop)
Mobile-first β Designing for mobile first, then adding features for larger screens
Breakpoint β A screen width where the layout changes (768px, 1024px)
Media query β CSS code that applies only at certain screen sizes
Flexbox β A modern CSS layout system for one-dimensional arrangements
Grid β A modern CSS layout system for two-dimensional arrangements
Viewport β The visible area of a web page in the browser
Above the fold β Content visible without scrolling
Below the fold β Content that requires scrolling to see
========== PERFORMANCE METRICS ==========
FCP β First Contentful Paint β when the first content appears on screen
LCP β Largest Contentful Paint β when the main content loads
FID β First Input Delay β how quickly the page responds to first click
CLS β Cumulative Layout Shift β how much the page jumps around while loading
Core Web Vitals β Google's three metrics for user experience (LCP, FID, CLS)
TTFB β Time to First Byte β how long until the server starts responding
========== REACT FUNDAMENTALS ==========
DOM β Document Object Model β the browser's internal representation of your HTML
Virtual DOM β React's lightweight copy of the DOM used for fast updates
Hydration β React attaching event handlers to pre-rendered HTML on page load
Reconciliation β React's process of figuring out what changed and updating only that
Component β A reusable piece of UI (button, card, navbar)
Props β Data passed from parent component to child component
State β Data that a component remembers and can change over time
Hook β A React function that lets you use state and other features in components
========== REACT HOOKS ==========
useState β React hook that creates a state variable
useEffect β React hook that runs code when component mounts or updates
useContext β React hook that accesses global data without passing props
useReducer β React hook for complex state logic (like Redux-lite)
useRef β React hook that holds a mutable value without causing re-renders
useMemo β React hook that caches a computed value for performance
useCallback β React hook that caches a function for performance
Custom hook β Your own reusable hook combining built-in hooks
========== REACT PATTERNS ==========
Higher-order component β A function that takes a component and returns an enhanced version
Render prop β A prop that is a function returning JSX
Children prop β A special prop that contains content between component tags
Key prop β A unique identifier React uses to track list items
Fragment β An empty wrapper that doesn't add extra DOM nodes (<>...</>)
Portal β Rendering a component outside its parent DOM hierarchy
Context β React's way to share global data without prop drilling
Prop drilling β Passing data through many nested component layers
========== REACT FORMS ==========
Controlled component β A form input whose value is controlled by React state
Uncontrolled component β A form input that manages its own value (ref)
Synthetic event β React's cross-browser wrapper around native browser events
Event bubbling β An event propagating from child element up to parent elements
Event delegation β Attaching one event listener to a parent instead of many children
========== PERFORMANCE OPTIMIZATION ==========
Debounce β Delaying an action until after a pause (search while typing)
Throttle β Limiting how often an action can fire (scroll handler)
Memoization β Caching a function's result so it doesn't recompute
Lazy loading β Loading code/components only when they're needed
Code splitting β Breaking your bundle into smaller chunks loaded on demand
Dynamic import β Importing code at runtime instead of at the top of a file
Suspense β React's way to show a fallback while waiting for async data
Error boundary β A React component that catches errors in its children
Strict mode β React's development mode that double-invokes functions to find bugs
Ref β A way to access DOM elements directly in React
Forward ref β Passing a ref through a component to a child element
========== STATE MANAGEMENT ==========
Flux β An architecture pattern where data flows in one direction (Redux)
Redux β A popular state management library for React
Store β The single object that holds all global state in Redux
Action β A plain object describing what happened (type: "ADD_TODO")
Reducer β A pure function that takes current state + action β returns new state
Dispatch β Sending an action to the store to trigger a state change
Selector β A function that extracts specific data from the Redux store
Slice β A portion of the Redux store with its own reducer and actions
Thunk β A function that delays an action (for async operations in Redux)
Saga β A more powerful way to handle side effects in Redux (generators)
Zustand β A simpler, smaller alternative to Redux for state management
Jotai β An atomic state management library (like Recoil but simpler)
Recoil β Facebook's state management library with atoms and selectors
========== DATA FETCHING ==========
TanStack Query β A library that manages server state (caching, refetching)
SWR β A React hook library for data fetching (stale-while-revalidate)
Mutation β A data change operation (create, update, delete)
Invalidation β Marking cached data as stale so it refetches
Optimistic update β Updating the UI immediately before the server confirms
Pessimistic update β Waiting for server confirmation before updating the UI
========== REAL-TIME ==========
Polling β Repeatedly fetching data at an interval
WebSocket β A persistent two-way connection for real-time data
SSE β Server-Sent Events β server pushes data to the client (one-way)
========== API STYLES ==========
REST β Representational State Transfer β the standard API architecture
GraphQL β A query language where the client asks for exactly the data it needs
Query β A GraphQL read operation (equivalent to GET)
Mutation β A GraphQL write operation (equivalent to POST/PUT/DELETE)
Subscription β A GraphQL real-time operation (equivalent to WebSocket)
Schema β In GraphQL, the definition of all available types and operations
Resolver β A function that fetches the data for a GraphQL field
Apollo β The most popular GraphQL client and server library
Relay β Facebook's GraphQL client (more optimized, harder to learn)
tRPC β A framework for building fully-typesafe APIs without GraphQL
gRPC β A high-performance RPC framework by Google (alternative to REST)
RPC β Remote Procedure Call β calling a function on another server
SOAP β An older XML-based API protocol (rare today)
========== CLOUD PLATFORMS ==========
Vercel β A platform that hosts Next.js apps with serverless functions
Netlify β Another hosting platform for frontend apps
AWS β Amazon Web Services β the biggest cloud provider
Lambda β AWS's serverless function service
EC2 β AWS's virtual server service (like a VPS)
S3 β AWS's storage service (files, images, backups)
CloudFront β AWS's CDN service
RDS β AWS's managed database service
DynamoDB β AWS's NoSQL database
Route53 β AWS's DNS service
ECS β AWS's container service (Docker)
EKS β AWS's Kubernetes service
IAM β AWS's identity and access management
CloudWatch β AWS's monitoring and logging service
GCP β Google Cloud Platform
Azure β Microsoft's cloud platform
DigitalOcean β A simpler, cheaper cloud provider ($5 VPS)
Lightsail β AWS's simplified VPS (like DigitalOcean)
Vultr β Another VPS provider (competitive pricing)
Linode β Another VPS provider (now part of Akamai)
Hetzner β German VPS provider (very cheap, excellent value)
Fly.io β A platform that runs your app close to users globally
Railway β A simple deployment platform with free tiers
Render β A simple hosting platform with free tiers
========== ORCHESTRATION ==========
Kubernetes β A system for automatically managing many containers
Docker Swarm β Docker's built-in container orchestration (simpler than K8s)
Nomad β HashiCorp's simpler alternative to Kubernetes
Pod β The smallest deployable unit in K8s (one or more containers)
Node β A machine in a Kubernetes cluster
Cluster β A group of nodes managed by Kubernetes
Deployment β A K8s resource that manages replica pods
Service β A stable network endpoint for a set of pods
Ingress β Rules for routing external traffic to services
ConfigMap β A way to store non-sensitive configuration
Secret β A way to store sensitive data (passwords, keys)
Namespace β A virtual cluster within a physical cluster
Helm β A package manager for Kubernetes
Chart β A Helm package (collection of K8s YAML files)
Kustomize β A built-in K8s tool to customize YAML without templates
Operator β A K8s extension that manages complex applications
CRD β Custom Resource Definition β extending the K8s API
Sidecar β An extra container in a pod that supports the main container
Init container β A container that runs to completion before the main app starts
DaemonSet β A K8s resource that runs one pod on every node
StatefulSet β A K8s resource for stateful applications (databases)
PV β PersistentVolume β storage resource in K8s
PVC β PersistentVolumeClaim β a request for storage
StorageClass β A K8s resource that defines different storage types (ssd, hdd)
HPA β Horizontal Pod Autoscaler β automatically scales pods
VPA β Vertical Pod Autoscaler β automatically adjusts CPU/RAM
PDB β Pod Disruption Budget β minimum pods that must stay up
RBAC β Role-Based Access Control β who can do what in K8s
ServiceAccount β An identity for a pod to use when calling the K8s API
========== SERVICE MESH ==========
Istio β A service mesh that manages traffic between microservices
Envoy β A high-performance proxy used by service meshes (Istio)
Linkerd β A simpler, lighter service mesh alternative to Istio
mTLS β Mutual TLS β both sides verify each other's identity
========== INFRASTRUCTURE AS CODE ==========
Terraform β A tool to define infrastructure as code
Ansible β A tool for automating server setup and configuration
Puppet β Another configuration management tool
Chef β Another configuration management tool
========== DOCKER ADVANCED ==========
Multi-stage build β Using multiple FROM statements to keep final image small
Alpine β A minimal Linux distribution (~5 MB) used for small Docker images
Distroless β Docker images that contain only your app and its runtime
Entrypoint β The command that runs when a container starts
CMD β Default arguments for the entrypoint
EXPOSE β Documentation that the container listens on a port
VOLUME β A persistent storage mount for a container
Bind mount β Mounting a host directory into a container (for live development)
Tmpfs mount β A temporary in-memory mount (fast, lost on restart)
Docker network β A virtual network connecting containers
Bridge network β The default Docker network (containers can see each other)
Host network β Container uses the host's network directly (no isolation)
docker-compose.yml β A YAML file defining multiple services (app, db, redis)
Service β A container defined in docker-compose (web, database, cache)
Healthcheck β A command Docker runs to check if a container is healthy
Restart policy β What Docker does when a container stops (always, unless-stopped)
Orphan container β A container no longer defined in docker-compose
Dangling image β An untagged image taking up disk space
Prune β Cleaning up unused Docker resources (images, containers, volumes)
Registry β A place to store and share Docker images (Docker Hub, GHCR)
Docker Hub β The default public Docker image registry
GHCR β GitHub Container Registry
Tag β A label for a Docker image (mysql:8, myapp:latest)
Digest β A unique SHA256 identifier for a specific Docker image
========== OBSERVABILITY ==========
Observability β The ability to understand what your system is doing
Metrics β Numerical measurements (CPU, request count, error rate)
Logs β Text records of events (errors, requests, debug info)
Traces β Following a request through multiple services
Distributed tracing β Tracing a request across microservices
Jaeger β An open-source distributed tracing tool
Zipkin β Another distributed tracing tool (older)
OpenTelemetry β A unified standard for collecting telemetry data
Prometheus β A popular open-source monitoring and alerting system
Grafana β A dashboard tool for visualizing metrics from Prometheus
Alertmanager β A Prometheus component that sends alerts (email, Slack)
Datadog β A paid observability platform (logs, metrics, traces)
New Relic β Another paid observability platform
Sentry β An error tracking service (free tier available)
ELK Stack β Elasticsearch + Logstash + Kibana (logging)
Elasticsearch β A search and analytics engine (part of ELK)
Logstash β A log processing pipeline (part of ELK)
Kibana β A visualization dashboard for Elasticsearch (part of ELK)
Loki β Grafana's log aggregation system (like Prometheus but for logs)
Tempo β Grafana's distributed tracing backend
PagerDuty β An on-call alerting service (wakes you up at 3 AM)
Slack β Chat platform where many dev teams get alerts
====================================================================================================
= AMAZON β HOW THE BIGGEST WEBSITE IN THE WORLD ACTUALLY WORKS (EVERY TECHNOLOGY INVOLVED)
====================================================================================================
This is a step-by-step walkthrough of what happens when you type "amazon.com" and buy a product.
Every bolded term is defined in the glossary above. This shows how all the pieces fit together.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 1: YOU TYPE "amazon.com" IN YOUR BROWSER
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1. Your browser checks its cache for a recent copy of amazon.com β If found, load instantly
2. No cache β Browser asks DNS (Route53 on AWS) to convert "amazon.com" to an IP address
3. DNS returns multiple IP addresses (load balancing) from different AWS regions
4. Browser picks the closest IP and connects via HTTPS (SSL certificate from AWS Certificate Manager)
5. The connection goes through a Firewall (AWS WAF β Web Application Firewall) that blocks attacks
6. Request hits CloudFront (Amazon's CDN) β serves static files from the nearest edge location
7. If the page is cached at the CDN edge, it returns instantly without touching the main servers
8. If not cached β request goes to the Load Balancer (ELB β Elastic Load Balancer)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 2: THE LOAD BALANCER DECIDES WHERE TO SEND YOU
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
9. ELB receives your request β it's the entry point to Amazon's backend
10. ELB checks which backend servers are healthy (Health check) and have capacity
11. If traffic is high, Auto-scaling (HPA β Horizontal Pod Autoscaler) has already spawned more servers
12. ELB forwards your request to one of thousands of microservices running on EC2 or EKS (Kubernetes)
13. The specific microservice that handles "product page" is called the "Product Service"
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 3: THE PRODUCT SERVICE BUILDS YOUR PAGE
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
14. Your browser sent a GET request to the API endpoint: /gp/product/B08N5WRWNW
15. Before processing, the API Gateway checks: Authentication? (JWT token in cookie/header)
Authorization? (are you allowed to see this product?)
16. The Product Service microservice (written in Java β Amazon's primary backend language)
starts gathering data from at least 12 different internal services:
a) Calls Product Catalog Service (DynamoDB) β product name, description, images
b) Calls Pricing Service (Aurora/MySQL) β current price, original price, discounts
c) Calls Inventory Service (DynamoDB) β is it in stock? how many left?
d) Calls Review Service (DynamoDB + Elasticsearch) β ratings, reviews, star breakdown
e) Calls Image Service (S3 + CloudFront) β product photo URLs
f) Calls Offer Service (DynamoDB) β deals, coupons, lightning deals
g) Calls Recommendation Service (ML model on SageMaker) β "Frequently bought together"
h) Calls Seller Service (DynamoDB) β who's selling it, seller rating
i) Calls Shipping Service (custom DB) β delivery date estimate based on your zip code
j) Calls Tax Service β applicable taxes
k) Calls Ad Service β sponsored product ads to show on the page
l) Calls Personalization Service (ML) β "Based on your browsing history" section
17. Each of these calls goes to different microservices β some are in the same data center,
others are in different AWS regions (Distributed architecture)
18. These inter-service calls use gRPC (fast) and REST (for external) protocols
19. The calls pass through Istio (Service Mesh) which handles:
- mTLS (encryption between services)
- Rate limiting (prevent one service from overwhelming another)
- Circuit breaker (if a service fails, stop calling it)
- Distributed tracing (trace the request across services β OpenTelemetry + X-Ray)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 4: CACHING LAYER (BEFORE HITTING THE DATABASE)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
20. Before each service queries its database, it checks Redis/Memcached first (the cache layer)
21. Product details for bestsellers are cached in Redis with TTL (Time To Live)
22. If cached β return instantly (single millisecond)
23. If not cached β query the database, then store result in Redis for next time
24. Redis also stores: user sessions, shopping cart contents, rate limit counters
25. This is why popular products load fast even during Black Friday β they're cached
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 5: DATABASES (THE MANY KINDS AMAZON USES)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
26. Amazon doesn't use one database β it uses many, each for a specific purpose:
DynamoDB (NoSQL) β Used for: product catalog, customer profiles, shopping carts, orders,
seller data, session data. Reason: needs to handle millions of reads/writes per second.
It's Amazon's own database β serverless, auto-scaling.
Aurora (MySQL-compatible, RDS) β Used for: pricing data, financial records, inventory
counts, affiliate data. Reason: needs ACID transactions, complex JOINs, data integrity.
ElastiCache (Redis) β Used for: caching product pages, sessions, rate limiting, leaderboards.
Reason: sub-millisecond reads, never used as primary storage.
OpenSearch (Elasticsearch) β Used for: product search, auto-complete suggestions,
log analytics. Reason: full-text search is bad in SQL databases.
S3 (Object storage) β Used for: product images, user-uploaded photos, backups,
logs, static assets, ML training data. Reason: cheap, infinitely scalable, 99.999999999% durable.
Timestream β Used for: time-series data like price history, stock levels over time.
Reason: optimized for time-based queries.
QLDB (Ledger Database) β Used for: immutable audit logs of financial transactions.
Reason: records cannot be modified or deleted β for accounting compliance.
27. Data is replicated across multiple AWS Availability Zones (different physical data centers)
so if one data center goes down, no data is lost.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 6: SEARCH β HOW SEARCHING "iphone 15" WORKS
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
28. As you type in the search box, the frontend uses Debounce (waits 300ms after you stop typing)
29. It sends each keystroke to the auto-complete API (OpenSearch) β suggests "iphone 15", "iphone 15 pro"
30. When you press Enter, it sends a GET request to /s?k=iphone+15
31. The Search Service (microservice) sends the query to OpenSearch with:
- Full-text search on product titles, descriptions, categories
- Filtering by category, price range, brand, prime eligibility
- Faceting (count of results in each category)
- Spelling correction ("iphon" β "Did you mean: iphone?")
- Ranking based on relevance, price, reviews, sales velocity
32. Results are merged with Ad Service results (sponsored products)
33. Results are paginated (Pagination) β 16 products per page
34. Returns JSON to the frontend β React renders the product grid
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 7: THE FRONTEND (WHAT YOU SEE IN YOUR BROWSER)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
35. Amazon invented React β their entire UI is built with React components
36. The HTML you first receive is Server-Side Rendered (SSR) via their internal Node.js layer
37. Then React Hydrates β attaches event handlers to the pre-rendered HTML
38. The page is split into components:
- Navbar (search bar, cart count, sign-in status)
- Product image gallery (carousel with zoom)
- Buy box (price, delivery date, add to cart button)
- Description tab
- Reviews section
- Recommendation carousels
39. Components use lazy loading (code splitting) β reviews and recommendations load after the main content
40. Images use lazy loading β only images near your viewport load first
41. Images are served in WebP format (smaller, faster) with fallback to JPEG for old browsers
42. CSS is minified and bundled into a single file
43. JavaScript is also bundled and tree-shaken (unused code removed)
44. The entire page is A/B tested β you might see a different layout than your neighbor
45. Metrics like LCP, FID, CLS (Core Web Vitals) are tracked for every page load
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 8: ADDING TO CART
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
46. You click "Add to Cart" β React dispatches an Action (in Redux/Zustand state management)
47. The Cart Service (microservice) receives a POST request with product ID + quantity
48. Cart data is stored in DynamoDB (persistent) AND Redis (for fast reads)
49. If you're not logged in, the cart is stored in a Cookie + Redis using a session ID
50. When you log in later, the anonymous cart merges with your account's cart
51. The cart count in the navbar instantly updates (Optimistic update β UI updates before server confirms)
52. Cart is available across all devices β phone, tablet, laptop, Fire TV
53. The Price Service checks if the price changed since you added it
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 9: CHECKOUT & PAYMENT
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
54. You click "Proceed to Checkout" β this is a multi-step flow handled by the Order Service
55. Step 1: Address Service β shows saved addresses, allows new one
56. Step 2: Shipping Service β calculates delivery dates (SLA)
57. Step 3: Payment Service β handles credit cards via Stripe/visa APIs (PCI-DSS compliant)
58. Step 4: Review Service β shows order summary, final price with tax
59. Step 5: Place Order button β starts a Transaction (all-or-nothing):
a) Deduct inventory (Inventory Service β DynamoDB with conditional updates)
b) Charge payment (Payment Service β third-party API call)
c) Create order record (Order Service β Aurora/MySQL)
d) Send confirmation email (SES β Simple Email Service)
e) Add to fulfillment queue (SQS β Simple Queue Service)
60. If any step fails β entire transaction ROLLS BACK (no partial orders)
61. The confirmation page is SSR'd instantly β shows order ID, estimated delivery date
62. Behind the scenes, a WebSocket connection (or SSE) updates order status in real-time
63. The fulfillment queue (SQS) sends a message to the nearest warehouse robot
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 10: MESSAGING & QUEUES (HOW SERVICES TALK TO EACH OTHER)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
64. Services don't always talk directly β they use message queues for reliability
65. Amazon uses SQS (Simple Queue Service) and Kafka (MSK β Managed Streaming for Kafka)
66. When an order is placed, a message goes to a Queue:
- Warehouse worker picks it up (Worker β a service that processes queue messages)
- If the worker crashes, the message goes to a Dead Letter Queue for manual inspection
- If the worker succeeds, the message is deleted from the queue
67. Kafka is used for real-time event streaming:
- Every page view, click, search, add-to-cart is an event β Kafka
- These events feed ML models (recommendations, fraud detection)
- These events feed real-time analytics dashboards
68. This is Pub/Sub (Publish/Subscribe) β one service publishes events, many services subscribe
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 11: RECOMMENDATIONS & AI/ML (THE BRAINS)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
69. Amazon's recommendation engine drives 35% of all sales β it's their most important system
70. It uses collaborative filtering + deep learning models trained on SageMaker (AWS ML service)
71. Data sources for ML:
- Your purchase history (DynamoDB)
- Your browsing history (Kafka event stream)
- Items in your cart (Redis + DynamoDB)
- Items people like you bought ("Customers who bought this also bought")
- Items you searched for
- Time of day, day of week, season
- Your location, device type
72. Models are trained on GPU clusters and deployed as APIs (SageMaker endpoints)
73. Predictions are pre-computed daily for popular items and stored in Redis (fast access)
74. Real-time predictions are computed on-the-fly for your specific request
75. Fraud detection models run on every order β flags suspicious activity (different shipping
and billing address, multiple orders to same address, unusual purchase patterns)
76. Dynamic pricing models adjust prices based on demand, competitor prices, inventory levels
77. Inventory forecasting predicts how many units to stock at each warehouse
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 12: INFRASTRUCTURE & DEPLOYMENT
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
78. Every microservice runs in Docker containers
79. Containers are orchestrated by EKS (Amazon's Kubernetes)
80. Each microservice has at least 3 replicas (redundancy)
81. During peak (Black Friday), HPA (Horizontal Pod Autoscaler) automatically spins up 10x more pods
82. Each pod has resource limits (CPU, RAM) defined β no single service can consume everything
83. New code is deployed multiple times per day via CI/CD pipeline (CodePipeline + CodeDeploy):
- Developer commits code to Git β GitHub triggers the pipeline
- Code is built, tested (unit tests, integration tests)
- Docker image is built and pushed to ECR (Elastic Container Registry)
- Canary deployment: 5% of traffic goes to new version first
- If error rate increases β auto-rollback
- If healthy β gradually increase to 100% (rolling update β one pod at a time)
84. Infrastructure is defined as code using Terraform β entire AWS setup is version-controlled
85. Configuration (feature flags, database URLs) is stored in AppConfig / Parameter Store
86. Secrets (API keys, database passwords) are stored in Secrets Manager with automatic rotation
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 13: OBSERVABILITY (KNOWING WHAT'S HAPPENING)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
87. Every request is traced end-to-end using OpenTelemetry + AWS X-Ray (Distributed tracing)
88. You can see a request travel: Browser β CloudFront β ELB β Product Service β DynamoDB β Redis
89. Metrics (CPU, memory, request latency, error rates) are collected by CloudWatch + Prometheus
90. Dashboards are visualized in Grafana β real-time graphs of every system
91. Logs from all 10,000+ microservices stream to CloudWatch Logs / OpenSearch / ELK Stack
92. If something breaks, engineers search logs in Kibana / OpenSearch Dashboards
93. Alerts are configured in CloudWatch Alarms / Alertmanager:
- "Error rate > 1%" β sends alert to Slack + PagerDuty
- "Latency > 500ms" β alerts on-call engineer
- "Disk 90% full" β auto-scales storage
94. Chaos Engineering (with AWS Fault Injection Simulator) intentionally breaks things to test
if the system survives. Netflix calls this "Chaos Monkey" β Amazon has similar tools.
95. Post-mortems are written after every major incident β root cause analysis, fixes applied
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 14: SCALE β HOW BIG IS THIS?
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
96. Amazon operates over 300+ microservices (each a separate deployable application)
97. Thousands of database instances across 30+ AWS regions worldwide
98. Every day: 1.6+ billion web requests, 500+ million database queries, petabytes of data
99. Over 200 million products cataloged, 300 million+ active customers
100. Each product page needs data from 12+ microservices (Phase 3) β all fetched in under 200ms
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
SUMMARY: ALL AMAZON TECHNOLOGIES IN ONE LIST
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
CATEGORY β TECHNOLOGIES AMAZON USES
ββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Frontend β HTML, CSS, JavaScript, React (they invented it), TypeScript, JSX
Rendering β SSR (Server-Side Rendering), Hydration, CSR (Client-Side Rendering), Lazy loading
Performance β Code splitting, Tree shaking, Minification, Bundling, WebP images, Lazy loading images, CDN
State Management β Redux, Flux architecture, Context API (React)
Styling β CSS-in-JS, Media queries, Responsive design, Flexbox, Grid, Mobile-first
Accessibility β ARIA, Screen reader support, ALT text, High contrast ratio
Search β Elasticsearch / OpenSearch, Full-text search, Fuzzy search, Auto-complete, Faceting, Ranking
APIs β REST, gRPC, GraphQL, API Gateway, WebSocket, SSE, Webhook
Backend Languages β Java (primary), Node.js, Python, C++, Go
Backend Frameworks β Spring (Java), Express (Node.js), internal frameworks
Authentication β JWT, OAuth 2.0 (Login with Google/Facebook/Apple), Session cookies, MFA (Multi-Factor Auth)
Databases β DynamoDB (NoSQL), Aurora/MySQL (RDS - Relational), ElastiCache/Redis (Cache),
β OpenSearch/Elasticsearch (Search), S3 (Object storage), Timestream (Time-series),
β QLDB (Ledger/immutable), Redshift (Data warehouse/data analytics)
Caching β CloudFront (CDN), ElastiCache (Redis/Memcached), Browser cache, ETags
Messaging & Queues β SQS (Simple Queue Service), Kafka (MSK), SNS (Simple Notification Service - Pub/Sub)
Containerization β Docker, EKS (Kubernetes), ECS (Amazon's container service), Fargate (Serverless containers)
Infrastructure as Codeβ Terraform, CloudFormation (AWS-native)
CI/CD β CodePipeline, CodeBuild, CodeDeploy, GitHub Actions, Jenkins, Canary deployments, Rolling updates
Monitoring β CloudWatch, Prometheus, Grafana, OpenTelemetry, X-Ray (Distributed tracing), Sentry (Error tracking)
Logging β CloudWatch Logs, OpenSearch/Kibana (ELK Stack), Loki
Alerting β CloudWatch Alarms, Alertmanager, PagerDuty, Slack
Networking β Route53 (DNS), CloudFront (CDN), ELB (Load balancer - Application/Network), VPC (Virtual Private Cloud),
β WAF (Web Application Firewall), Shield (DDoS protection), Direct Connect (dedicated fiber)
Security β IAM (Identity & Access Management), KMS (Key Management Service), Secrets Manager,
β Certificate Manager (SSL/TLS), GuardDuty (threat detection), Detective, Macie (data loss prevention)
Serverless β Lambda (functions), API Gateway, Step Functions (workflows), EventBridge (event bus)
Email & Notificationsβ SES (Simple Email Service), SNS (Push notifications), Pinpoint (targeted campaigns)
Machine Learning β SageMaker (training + deployment), Personalize (recommendations), Forecast (demand prediction),
β Fraud Detector, Rekognition (image analysis), Comprehend (NLP/text analysis)
Video & Streaming β Kinesis (real-time video/streaming data), MediaConvert (video transcoding), IVS (live streaming)
Storage β S3 (files, images, backups), EBS (block storage for EC2), EFS (shared file system), Glacier (archive)
Database Replication β Multi-AZ (across data centers), Read replicas, Global tables (cross-region), Point-in-time recovery
Data Warehouse β Redshift (petabyte-scale analytics), Athena (SQL on S3), Glue (ETL - Extract Transform Load)
CI Patterns β Feature flags, A/B testing, Canary releases, Blue-green deployment, Chaos engineering
Testing β Unit tests, Integration tests, Load testing, Chaos Monkey / Fault injection, A/B tests
Payment β Stripe, Visa/Mastercard APIs, Amazon Pay, PCI-DSS compliance (security standard for payments)
Mobile β React Native (iOS/Android), Native Android (Kotlin), Native iOS (Swift), Fire OS
Hardware β AWS data centers worldwide, Custom Nitro chips, Graviton (ARM processors), Inf1 (ML inference chips)
Engineering Culture β Post-mortems, On-call rotations, Code reviews, Two-pizza teams (small teams), Working backwards
β from customer needs, Six-page memos (no PowerPoint), Bar raiser hiring process
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
THE BIG PICTURE
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Your single click on "Buy Now" triggers all of this in under 2 seconds:
Browser β DNS β HTTPS β CDN β Firewall β Load Balancer β API Gateway β Auth Service β
Product Service (12 sub-calls with caching) β Cart Service β Order Service β
Payment Service β Inventory Service β Shipping Service β Queue β Warehouse Robot β
Confirmation (reverse path)
Along the way it touches: HTML/CSS/JS/React β Java/Node.js β gRPC β Redis β DynamoDB β
Aurora β Elasticsearch β S3 β Kafka β Lambda β SageMaker ML β Docker β Kubernetes β
Terraform β CloudWatch β PagerDuty
And it all happens in under 2 seconds while handling 50,000+ other customers doing the same thing.
Your simple Suplecost app uses exactly the same concepts β just at a much smaller scale.
React frontend β Node.js backend β MySQL database β Redis cache β Docker β VPS.
Same architecture. Fewer zeroes.
====================================================================================================
= SWIGGY β HOW THE BIGGEST FOOD DELIVERY APP IN INDIA ACTUALLY WORKS
====================================================================================================
This is a step-by-step walkthrough of what happens when you open Swiggy, browse restaurants,
order food, and get it delivered. Every bolded term is defined in the glossary above.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PHASE 1: YOU OPEN THE SWIGGY APP
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1. You open the Swiggy app on your phone (or visit swiggy.com on your laptop)
2. The app (React Native for both iOS and Android) makes an HTTPS request to the API
3. DNS lookup via Route53 or Cloudflare DNS β resolves to Swiggy's nearest server
4. Request hits CloudFront (CDN) β static assets (logos, icons, JS bundles) are served from edge
5. Dynamic API request passes through AWS WAF (Firewall) β blocks bots, SQL injection, DDoS