We built an OpenStack client in Elm:
In theory we could publish the OpenStack API code as a package. At the moment it only covers the parts of the API that we use.
The app also includes a rules-based orchestration engine for composing simple (but error-prone) steps into a complex (yet resilient & self-healing) process. For example:
- Create a VM
- Get a network
- Get a port
- Assign a floating IP
It’s always been in the back of my mind to turn this into a DSL for fault-tolerant cloud workflows.
P.S. Our orchestration engine implementation was inspired by a paper posted here: Intents and Facts - pondering CQRS in Elm - #3 by MarkHamburg