Amazon's first system was a single monolith. Its failure sparked a 30-year evolution that ultimately led to the creation of AWS.
#1about 9 minutes
Amazon's early monolith and database scaling challenges
The initial architecture of Amazon.com was a single monolith with a battery of relational databases that created a significant scaling bottleneck.
#2about 4 minutes
Decomposing the monolith into a service-oriented architecture
Amazon's first major architectural shift involved breaking the monolith into services, but an initial data-driven decomposition created new, large services that became bottlenecks themselves.
#3about 3 minutes
From microservices to infrastructure as a service
The move to smaller microservices improved developer productivity until the overhead of managing capacity and databases for each service led to the creation of internal infrastructure as a service platforms.
#4about 6 minutes
Designing for evolvability to accommodate future changes
Systems must be designed with evolvability as a core principle, allowing for continuous change and feature additions without downtime, as exemplified by Amazon S3.
#5about 4 minutes
Implementing cell-based architectures to isolate failures
A cell-based architecture isolates failures by partitioning customers and infrastructure into independent, self-contained units, thereby limiting the blast radius of any single outage.
#6about 3 minutes
Using sharding to dramatically reduce blast radius
By mapping customers to multiple overlapping cells (sharding), the blast radius of a failure is reduced from a fraction of cells to a much smaller fraction based on mathematical combinations.
#7about 4 minutes
Making cost a non-functional requirement in system design
Frugality is a key architectural driver where cost is treated as a primary non-functional requirement, and making cost metrics visible to engineers changes their behavior and improves efficiency.
#8about 3 minutes
How programming language choice impacts cost and sustainability
The choice of programming language has a significant impact on system cost and energy efficiency, with languages like Rust offering major advantages in performance and security over others like Python or Ruby.
Related jobs
Jobs that call for the skills explored in this talk.
Why Attend a Developer Event?Modern software engineering moves too fast for documentation alone. Attending a world-class event is about shifting from tactical execution to strategic leadership.
Skill Diversification: Break out of your specific tech stack to see how the industry...