About this episode
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
Get every episode summarized
Each time ClojureStream Podcast publishes, we email you a written briefing from the transcript — the topics, who appeared, and any specific claims, with the ad reads skipped.
Email me new episodesFree for 3 shows. No card needed.
Hosts & guests
No transcript yet
This episode has not been transcribed. Request it and it moves to the front of the queue.
More episodes
More from ClojureStream Podcast
E103 - LLM Experience report with Tony Kay
ClojureStream Podcast
Apr 22, 202654:27failed
E102 - Pedestal with hlship
ClojureStream Podcast
May 7, 202543:44pending

E100 - mpenet and open source libraries
ClojureStream Podcast
Mar 21, 202540:08pending
E99 - Replicant with Christian Johansen
ClojureStream Podcast
Mar 4, 202543:20pending