Ben Mosely and Peter Marks argued in their 2006 paper, "Out of the Tarpit", that most complexity in modern software systems is of an inessential nature. They convincingly made the case for unmanaged state being a large contributor to the illusion of essential complexity in software systems. They proposed a hypothetical architecture, Functional Relational Programming (not to be confused with Functional Reactive Programming) to effectively eliminate inessential complexity from software systems. Eleven years later their architecture is no longer hypothetical but largely realized in Clojure systems that also use Datomic, a new immutable relational database. Datomic now supports other programming languages through its client protocol, thus the FRP methodology and philosophy can be readily applied outside of the Clojure ecosystem. In this talk we will explore how this approach can greatly simplify typical medium to large distributed applications, which, thanks to the Internet, represents a considerable portion of the software being written today.
Describing the benefits of a Functional Relational Programming style approach for typical distributed applications