Scalable Production Haskell

I’ve been trying to research creating a scalable architecture that would include Haskell backend(s).

To start with I’m thinking about using AWS for ec2 instances, rds database, load balancing, Purescript frontend to make a toy app. My thinking is I’d have a strong foundation which would be much easier to expand if things were to scale!

This is mostly for learning purposes, but what I’ve been struggling with is how a haskell backend would fit into that with continuous integrations, CI and the likes.

Does anyone know of good examples / articles that could help me in how others are dealing with Haskell in something more advanced and scalable? Would Nix be wise here?

4 Likes

I’ll be interested to work with you. I’ve been doing Haskell for a few months now, and am pretty good with kubernetes & docker. I am not a dev-op guru, but have deployed many apps in Scala, and a few in Haskell to kubernetes.
As for your question, I’d say keep it simple at this stage, no nix until there is a prototype of your app. You can convert to nix later using something like nix-templates I’d suggest using stack initially so that you can iterate quickly

While I dislike how the industry latches on to tech as a silver bullet (DHTs! Now Kafka! Now everything must be K8S!), I do think K8S is a good scaling technology. You dumb the problem down to enough manuals and writing YAML (shudder) then the AWS EKS can use autoscaling and ALB to distribute the traffic to an arbitrary number of instances of your program.