Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 7
Next »
System Architecture
- Building Evolutionary Architecture, by Ford, Parsons & Kua
- Provides a holistic overview of the current landscape of large-scale distributed systems with a perspective of how well they support on-going evolutionary changes.
- Aligns very well with edX architecture thoughts on domain-driven design and the reactive manifesto.
- Explains Fitness functions and how to use them to evolve a large-scale system.
- Some book club notes are captured at Building Evolutionary Architecture.
- Domain-driven Design, by Eric Evans
- Provides a fundamental perspective on designing software with an emphasis on modeling business needs and creating a common ubiquitous language with an ongoing partnership between engineers and knowledge experts.
- Additionally, an understanding of its design principles leads to an essential perspective on where to create boundaries around microservices and how they should interact (a.k.a., bounded contexts).
- Overall, this original book is hard to read since it is wordy and redundant. However, there are various attempts at creating more comprehensible texts for DDD, including the recommended one below.
- A group of brave and persistent edX engineers ventured into reading this original text and captured notes at Domain-Driven Design Book Club Notes.
- Patterns, Principles, and Practices of Domain-driven Design, by Scott Millet
- This is a must-read for anyone interested in designing microservices and their interactions! It clearly explains the main concepts of Domain-Driven Design, while incorporating modern ideas of Reactive Manifesto and Self-contained Systems (although not necessarily using those terms).
- It is relatively a lengthy book, but definitely not as long as Eric Evan's original DDD text - and the last chapters with coding examples can be quickly skimmed through (or even skipped).
- Building Microservices, by Sam Newman
- A good overview of microservices with a recommended design mindset.
- Information on some tools and patterns when implementing and managing microservices.
- Notes captured at Building Microservices.
- Reactive Manifesto
- Very clearly describes and explains how a well-crafted message-driven (event-passing) system architecture can lend itself to a highly Responsive, Resilient, and Elastic system.
- edX experiences in following this manifesto have thus far yielded good results.
- Self-contained Systems
- Building on top of the design principles of the Reactive Manifesto, SCS takes a more extreme standpoint and encourages entirely autonomous, highly decoupled, self-contained services that contain their own UI, business logic, and data storage, with only asynchronous communications between SCS'.
- The slides at the top of their page provide great visuals of these concepts.
Extensions
- Clean Architecture, by Robert Martin (Uncle Bob)
- Excellent description of how SOLID coding design principles can be taken to a higher (course-grained) component level.
- Great read to formulate ideas around plugins and extensions.
Frontend Architecture
- Atomic Design, by Brad Frost
- 1st half provides a ubiquitous language for reusable frontend components: Atoms, Molecules, Organisms, Templates, and Pages.
- 2nd half speaks to the challenges and importance of alignment throughout the organization on developing, using, and maintaining a Design System.
Architecture (basic)
- Design It!, by Michael Keeling
- Provides a high-level overview of some elements of software architecture.
- Part 3 contains good ideas on architecture/design workshops and katas.
Coding Best Practices
- Clean Code, by Robert Martin (Uncle Bob)
- Good perspective on coding best practices - though some may have differing thoughts on some recommendations.
- Book club notes captured at Clean Code.