Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Designing Features for Mature Systems - Lessons Learned from Manta

GOTO Conferences via YouTube

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore the intricacies of designing features for mature distributed systems in this GOTO Chicago 2018 conference talk. Delve into a case study on expanding Manta, Joyent's highly-scalable distributed object store, by implementing a multipart upload API. Learn about the challenges and considerations involved in making changes to established systems while maintaining existing invariants and working within previously established design tradeoffs. Gain insights into the design process, including first principles, key questions, and important considerations for implementing multipart uploads. Examine the storage layer implementation, idempotency concerns, state machine design, and concurrency issues. Understand how to work with design constraints and make effective tradeoffs when expanding mature systems. Walk away with valuable lessons on designing features that harmoniously integrate with existing distributed system architectures.

Syllabus

Intro
Manta 101: Features
Manta 101: API operations
Manta 101: System Primitives
Manta 101: Design Constraints
Manta Design: Data Path
Manta Design: Compute
Multipart Uploads!
Multipart Uploads: First Principles
Multipart Uploads: Design Questions
Multipart Uploads: Design Considerations
Example MPU Structure
Multipart Upload Design: Commits
Commit: Storage Layer Implementation
Multipart Upload Commits: Idempotency
MPU State Machine
Commits: Final Steps
Concurrency in other MPU operations
Revisiting Design Constraints
Working with Design Constraints
Tradeoffs in Design
Final Thoughts

Taught by

GOTO Conferences

Reviews

Start your review of Designing Features for Mature Systems - Lessons Learned from Manta

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.