# Software Architecture [[Programming]] [[Software Engineering]] ## ZK - [[SK - 2k0 - 2022-08-07 - Software Architecture]] I am really bullish on using [[Prototyping]] to design out and explore [[Software Architecture]] - [[SK - 2i0 - 2022-08-13 - Building prototypes for software architecture]] ## Patterns ### Domain discovery - [[Domain Driven Design]] ### [[Distributed Systems]] In general, see: - [Patterns of Distributed Systems](https://martinfowler.com/articles/patterns-of-distributed-systems/) Individual patterns: - [[Rate-limiting]] - [[Event-driven Architecture]] - [[Write-Ahead Log]] ### OOP - [[Strangler Fig Pattern]] ### [[Refactoring]] - [[Strangler Fig Pattern]] ## Antipatterns The **inner-platform effect** is the tendency of software architects to create a system so customizable as to become a replica, and often a poor replica, of the software development platform they are using. Honestly, not really sure I really know what this is about. - [Inner-platform effect - Wikipedia](https://en.wikipedia.org/wiki/Inner-platform_effect) ## Books ### Distributed Systems - [[BOOK - Building Event-Driven Microservices - Adam Bellemare]] - [[BOOK - Monolith to Microservices - Sam Newman]] ### General - [[BOOK - Software Architecture The Hard Parts - Neal Ford Mark Richards Pramod Sadalage Zhamak Dehghani]] - [[BOOK - Building Evolutionary Architectures - Neal Ford, Rebecca Parsons, Patrick Kua]] - [[BOOK - Fundamentals of Software Architecture - Neal Ford Mark Richards]] - [[BOOK - The Art of Immutable Architecture - Michael Perry]] - [[BOOK - Software Engineering at Google - Titus Winters Tom Manshreck Hyrum Wright]] ### Domain Driven Design - [[BOOK - Domain-driven Design - Eric Evans]] - [[BOOK - Learning Domain-Driven Design - Vlad Khononov]] ## Logs [[2022-08-27]] - Start adding structure, adding books, adding patterns