Unmesh Joshi, a Principal Consultant at ThoughtWorks and author of "Patterns of Distributed Systems," dives deep into the intricacies of distributed systems. He discusses the critical role of context in applying patterns and the necessity of reading code for better implementation. Unmesh highlights common developer pitfalls and the importance of understanding consensus mechanisms, using the Paxos algorithm as an example. He also emphasizes the evolution of cloud computing practices and the human aspect of software design, urging a user-focused iterative approach.
58:14
forum Ask episode
web_stories AI Snips
view_agenda Chapters
menu_book Books
auto_awesome Transcript
info_circle Episode notes
insights INSIGHT
Patterns in Distributed Systems
Patterns are helpful when you understand how multiple patterns fit together within a system's context.
The book focuses on common building blocks and problems in distributed data systems like Kafka or distributed databases.
question_answer ANECDOTE
Paxos Example
Paxos, a consensus algorithm, is often misunderstood, but crucial in distributed systems.
Unmesh Joshi uses Cassandra's implementation of Paxos to illustrate the gaps between theoretical descriptions and practical implementations.
insights INSIGHT
The Role of Developers
Developers should not be treated as mere code typists, but as expert generalists who understand system internals.
This understanding helps blur the lines between product implementers and users, allowing for better architectural decisions.
Get the Snipd Podcast app to discover more snips from this episode
This book is the official guide to Rust, an open-source systems programming language. It covers everything from the basics of creating functions, choosing data types, and binding variables to advanced concepts such as ownership, borrowing, lifetimes, error handling, and fearless concurrency. The book includes concept chapters and project chapters, where readers apply what they have learned by building small programs, including a number-guessing game, a Rust implementation of a command line tool, and a multithreaded server. It emphasizes Rust’s ability to provide low-level control without the traditional risks of crashes or security holes, making it suitable for a wide range of programming tasks, from CLI apps to web servers.
Patterns of Distributed Systems
Unmesh Joshi
Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma
Richard Helm
John Vlissides
Ralph Johnson
This book, written by the 'Gang of Four' (Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides), is a comprehensive guide to software design patterns. It is divided into two parts, with the first part discussing object-oriented design techniques and the second part detailing 23 classic design patterns. The book includes examples in C++ and Smalltalk and has been highly influential in the field of software engineering, emphasizing principles such as programming to an interface rather than an implementation and favoring object composition over class inheritance.
The GeekNarrator memberships can be joined here: https://www.youtube.com/channel/UC_mGuY4g0mggeUGM6V1osdA/joinMembership will get you access to member only videos, exclusive notes and monthly 1:1 with me. Here you can see all the member only videos: https://www.youtube.com/playlist?list=UUMO_mGuY4g0mggeUGM6V1osdA------------------------------------------------------------------------------------------------------------------------------------------------------------------About this episode: ------------------------------------------------------------------------------------------------------------------------------------------------------------------In this conversation, Unmesh Joshi discusses the patterns of distributed systems. He emphasizes the importance of understanding the context in which patterns are applied, the need to read code to grasp their implementation, and the common pitfalls that developers face when applying patterns without a clear understanding of the underlying problems. Chapters00:00 Introduction to Distributed Systems and Patterns05:39 Understanding Patterns in Distributed Systems19:23 Bridging Theory and Practice in Distributed Systems28:56 The Role of Developers in Understanding Patterns31:58 Understanding Patterns in Software Development40:58 The Human Aspect of Software Design44:37 Iterative Development and Real-World Applications49:03 The Future of Patterns in Cloud-Native Systems55:07 Common Misunderstandings of Distributed PatternsInteresting quotes:"Patterns capture wisdom of generations.""Reading code is the best way to understand.""Patterns help you see beyond abstractions.""Understanding patterns helps bridge the gap.""Expert generalists can operate across verticals.""There are no simple systems in the cloud era.""Patterns can add complexity if misunderstood.""Patterns are always useful within a context.""Design and development are human activities.""The deconstruction of databases is happening.""Paxos is the most misunderstood pattern."Unmesh Joshi :https://in.linkedin.com/in/unmesh-joshi-9487635Catalog of Patterns: https://martinfowler.com/articles/patterns-of-distributed-systems/I hope you liked the episode, if you did please like, share and subscribe. ------------------------------------------------------------------------------------------------------------------------------------------------------------------Like building real stuff?------------------------------------------------------------------------------------------------------------------------------------------------------------------Try out CodeCrafters and build amazing real world systems like Redis, Kafka, Sqlite. Use the link below to signup and get 40% off on paid subscription.https://app.codecrafters.io/join?via=geeknarrator------------------------------------------------------------------------------------------------------------------------------------------------------------------Link to other playlists. LIKE, SHARE and SUBSCRIBE------------------------------------------------------------------------------------------------------------------------------------------------------------------If you like this episode, please hit the like button and share it with your network. Also please subscribe if you haven't yet.Database internals series: https://youtu.be/yV_Zp0Mi3xsPopular playlists:Realtime streaming systems: https://www.youtube.com/playlist?list=PLL7QpTxsA4se-mAKKoVOs3VcaP71X_LA-Software Engineering: https://www.youtube.com/playlist?list=PLL7QpTxsA4sf6By03bot5BhKoMgxDUU17Distributed systems and databases: https://www.youtube.com/playlist?list=PLL7QpTxsA4sfLDUnjBJXJGFhhz94jDd_dModern databases: https://www.youtube.com/playlist?list=PLL7QpTxsA4scSeZAsCUXijtnfW5ARlrsNStay Curios! Keep Learning!#distributedsystems #patterns #softwarearchitecture #consensus #algorithms #coding #patterns #softwaredevelopment #ThoughtWorks #softwareengineering #cloud #computing #software