A Functional architecture with F#
F# is a Functional language in the .NET framework; while most people still regard it as a niche language, it’s a Turing complete language, so you can build almost any sort of application with it. However, with its strong focus on immutability, programmers used to Object Orientation struggle with creating a proper architecture for a Functional system.
One way to approach Functional architecture is to separate the system into a subsystem for writing data, and another subsystem for reading data.
A set of design patterns collectively known as Pipes and Filters provide a model for receiving and persisting data, while a programming model known as Map/Reduce addresses the concerns of reading (persisted) data and transforming it into useful boundary constructs.
Code examples in F#.