Designing Features for Mature Systems - Lessons Learned from Manta
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.