EPISODE · Apr 1, 2025 · 49 MIN
E101 FC/IS with magnars
from ClojureStream Podcast · host Jacek Schae
In this episode, we explore the Functional Core, Imperative Shell (FC/IS) architecture pattern popularized by Gary Bernhardt. This powerful approach separates pure business logic from side effects, resulting in code that's more testable, maintainable, and reasoning-friendly. We'll discuss how FC/IS differs from traditional layered architectures by treating effects as data, enabling an impressive 85% of code to exist as pure functions. Using the analogy of a presidential cabinet, we explain how the functional core makes decisions while the imperative shell handles execution. The episode covers practical implementation strategies, the crucial role of Datomic in solving the "all relevant facts" problem, and real-world benefits including enhanced REPL-driven development, simplified error reproduction, and improved system observability. Emacs Rocks - https://emacsrocks.com Parens of the dead - https://parens-of-the-dead.com Replicant - https://replicant.fun FC/IS - https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell FC/IS with types https://www.youtube.com/watch?v=P1vES9AgfC4 Datomic - https://www.datomic.com
What this episode covers
In this episode, we explore the Functional Core, Imperative Shell (FC/IS) architecture pattern popularized by Gary Bernhardt. This powerful approach separates pure business logic from side effects, resulting in code that's more testable, maintainable, and reasoning-friendly. We'll discuss how FC/IS differs from traditional layered architectures by treating effects as data, enabling an impressive 85% of code to exist as pure functions. Using the analogy of a presidential cabinet, we explain how the functional core makes decisions while the imperative shell handles execution. The episode covers practical implementation strategies, the crucial role of Datomic in solving the "all relevant facts" problem, and real-world benefits including enhanced REPL-driven development, simplified error reproduction, and improved system observability. Emacs Rocks - https://emacsrocks.com Parens of the dead - https://parens-of-the-dead.com Replicant - https://replicant.fun FC/IS - https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell FC/IS with types https://www.youtube.com/watch?v=P1vES9AgfC4 Datomic - https://www.datomic.com
NOW PLAYING
E101 FC/IS with magnars
No transcript for this episode yet
Similar Episodes
Mar 26, 2026 ·1m
Jan 2, 2026 ·47m
Dec 21, 2025 ·46m