Phases in Software Architecture
summary
Argues that multi‑phase program structure is captured by an applicative functor encoding phases, uses Day convolution to compose two‑phase and iterated multiphase computations, and shows concrete examples: a RepMin-style one‑pass minimum-and-replace implemented as a writer/reader split, a single‑pass leaf‑sorting via phase reordering, and a simple recipe for breadth‑first traversal by marking root now and children later. Claims compose with monadic effects per phase and that endpoint projection for choreography maps naturally to these Day convolution multiphase encodings.
AI-written summary · about
chapters (17)
- 0:00Software architecture phases
- 1:30Storytelling for software design
- 3:15Data-driven programming roots
- 8:12Separating computation and execution
- 10:18Applicative functor gadget
- 13:29Traversing data structures with effects
- 17:24Depth-first vs breadth-first traversal challenges
- 18:06Solving repMin in one pass
- 23:50Traversal fusion and effect commutativity
- 27:02Two-phase computations with Day convolution
- 30:57Literate programming phases
- 33:49RepMin two-phase example
- 37:39Generalizing multi-phase architectures
- 40:29BFS reversal with phase alignment
- 40:50Phases in choreography and tiers
- 43:57Conclusion and research
- 44:46Q&A on phase ordering
related talks
01h 18mMulti-phase computation as an applicative functor
16mA metalanguage for multi-phase modularity
49mGetting a handle on software architecture
10mApplication Components in a Phase Space
34mPatterns of a pragmatic functional architecture
17mFunctional Architecture is Algebraic Architecture
51mMicroProcess Architectures: Planning for Change, & Retaining Flexibility
49mApproaching Functional Programming Through Hexagonal Architecture
