# 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