Application Infrastructure Ecosystem

The type safety and formal verification features in the F# language lend themselves very well to building infrastructure for applications, but so often we have to go outside the ecosystem to get things like actor systems, cluster coordination, message routing, workflow, and distributed processing. Most of the infrastructure development work is around either developer infrastructure (paket, fake, unit testing), or database type providers and HTTP libraries. For everything else, we go to interop with C# libraries (losing much of the safety and verification) or outside the ecosystem altogether, just making clients or wrappers for these technologies, like fszmq.

I’d like to get more visibility and activity abound application infrastructure development, because this isn’t such a “me too” thing, but a distinguishing feature of the F# language.

Is there interest here in having a periodic meeting on infrastructure project development? Immediate topics for me would be updating fsraft so it’s viable for cluster coordination in .NET Standard projects, and determining if cricket can be revived to become viable again (maybe leveraging hopac). These two projects interest me because their pure F# nature provide type safety whereas alternatives like AkkaDotNet don’t. In addition to the pure code work, these could benefit from some documentation and packaging work.

Aside from a periodic discussion and planning meeting on Slack, I feel these could benefit from fsharp.org pages or a GitHub project that publicizes them a little better, but I really want to gauge interest first.

3 Likes

Links for the interested:

Having a great infrastructure ecosystem is something that could really help promote F# in my company!

That being said, I’m pretty new to F# myself and I’m not sure I have all the required skills for that kind of development but I’d really like to help there.

1 Like

I’d also add LMAX Disruptor implementation to the list of infrastructure bits that would be nice to have. I used the C# port last time, and it was not fun in F#.

1 Like