The whole reason you do Functional Programming is more predictable software. The whole reason you do Serverless on AWS is to let Amazon manage the infrastructure. There is one thing about Serverless, though, that doesn't get a lot of attention and that is how it follows a lot of Functional Programming ideas. Specifically, encouraging stateless architecture, composing functions together, and AWS handling state. State is hard, and AWS handles most of it now. Leveraging this is overwhelming if you're new to everything, both FP and AWS.
In this article I'll cover how to deploy to AWS:
- an Extract Transform Load (ETL) pipeline
- an Orchestration REST API (back-end API for a front-end)
- and a UI web application.
Quick caveat on functional purity: Before I get yelled at by Haskell purists, my definition is "pure enough to ship software that mostly works in a reasonable timeline". I'm aware most of the code examples are not scientifically pure & type checked, free of side effects, 100% determinism, blah blah blah. My goal is to lift the unwashed masses out of their OOP soup & imperative hell holes and show them a better, more fun way to build software. I want to give them an approach that is pragmatic and slowly adaptable to their existing work, not demand they follow the "Way of the I/O Monad". I know it's frustrating to see scientific/math definitions abused for the sake of someone's agenda, even if benevolent. I feel it's worth it. That said, I won't delete your comments if you lay into me. 😘