Getting a handle on software architecture
summary
Argues that software architecture’s core claim is to avoid future constraints by designing layers with coherent boundaries; uses Unix pipes, Kafka as a distributed log, and ORMs as a counterexample to show how simple, precise primitives reduce surprising downstream coupling. Gives concrete tradeoffs (e.g., id strategies, messaging contracts) and says architects need interpolation plus extrapolation skills to predict which choices will constrain evolution 6–36 months out, not to manage or gatekeep.
AI-written summary · about
chapters (24)
- 0:00Intro
- 1:05Welcome
- 2:50Context
- 4:50Top 3 definitions
- 6:51Top 2 definitions
- 8:52What is not architecture
- 11:17Whats a miss
- 11:39The critical path
- 14:07System diagram
- 14:28Architecture diagram
- 15:37Architecture is contextual
- 17:34Unix philosophy
- 19:27Pipes
- 21:29Kafka
- 23:32Enterprise Service Bus
- 25:40Systems in common
- 27:27Object relational mapper
- 29:03Why is orm bad
- 31:09Recap
- 33:38Define any discipline
- 38:32Core skills of a software architect
- 40:17Picking good solutions
- 42:16Software architecture is vocational
- 44:44Wrapping up
related talks
48mArchitecture: The Stuff That's Hard to Change
49mWhy software architects fail: and what to do about it
45mFive things every developer should know about software architecture
46mPractical (a.k.a. Actually Useful) Architecture
45mSoftware Architecture for Humans!
58mThe past, present and future of Architecture
51mSoftware Architecture for Humans!
16mIt’s Only Pasta: a Few Tips on Software Architecture to Avoid Spaghetti Code
