Skip to content
#Architecture

[2/2] How AWS S3 is built (Category Architecture)

#Architecture #Culture #Management #Leadership #Processes #Engineering #Software #DistributedSystems #SystemDesign

Continuing this snapperI would like to share the findings for engineers and tech executives.

For engineers, you can pick up ideas that - Reliability. This is not a try/catch and retras, but separate systems: audit, recovery, continuous testing of invariants. If you have high-stakes data, think not only about the happy path, but also about ways to self-heal. Correlation of failures is more important than single failures - Design by fault domains (rack/AZ/region)Chaos tests are not to accidentally knock out the node, but to disable the common domain of failure. - Rust on a critical path. This is a good way to optimize if you write network/IO-intensive runtime or any hot path – memory-safe system language becomes a competitive advantage. Formal methods may not be excessively heavy, but practical.: You don't have to verify everything. Enough to choose. 1–2 invariant (consistency, crash safety, access rights) Put an automatic check next to the CI

And for tech executives, this is the story of Difficulty can be overcome by limitations. There may be hundreds of services, but each must be simple and focused, otherwise the system will become unmanageable. SLO metrics should be measurable, not declarative.: The idea we can answer is what our actual durability is in a week/month is about the culture of engineering, where the operating system is built into the design. Correctness as a product - Automatic reasoning/formal verification As an investment that allows you to move quickly and not break. This is especially important where tests cannot cover combinations of conditions. S3 storage becomes a data platform: Tables/Vectors is a hint that part of the database/search/optimization will increasingly live near storage. For architecture, this means regularly reviewing whether it’s better to build yourself or shift down to managed primitives.

If you want to try this approach at home, you can.

  • Draw fault domains (real) Check where you have a hidden correlation. Add an audit service at least for key invariants (checksums/version/indices reconciliation/replications).
  • Select. 1 critical module and use lightweight formal approach: specification + automatic verification (even minimally). Review services for functionality overload and decompose responsibility so that each component is dumb, small and verifiable.

#Culture #Management #Leadership #Processes #Engineering #Software #Architecture #DistributedSystems #SystemDesign