[Haskell-cafe] Project idea, seeking feedback

Alex alex at centromere.net
Wed Nov 15 22:44:14 UTC 2017

On Wed, 15 Nov 2017 15:30:37 +0100
MarLinn <monkleyon at gmail.com> wrote:

> Hi Alex,
> sounds ambitious. But you might be able to reduce the scope massively
> by relying on existing tools.

Yes! I do not wish to reinvent the wheel.

> Examples:
>   *
>     Let something like Nagios do the monitoring. I know there's tools
> to control Nagios from Haskell. What I don't know is how up-to-date
>     they are, and I haven't seen something that reports internal
>     performance data of a Haskell app to Nagios, but that should be
>     simple if necessary.

I don't think Nagios is a good fit because I want to do more than
monitor the performance of the interpreter. I want to rely on that
performance data so that I can use resources more effectively. For
example, I want to know what the load average of a particular node is,
and then I want to rely on historical performance data of the DSL
primitives to determine if the next instruction to be executed should
be scheduled to run on that node or a different one.

>   *
>     Let something like Cassandra handle both the heaviest parts of
>     messaging between your node controllers and the storage of their
>     config data. If you base your WUI on top of the DB, you can
> separate it from the controllers as well.
>   *
>     Coordination of resources is a variant of scheduling, which is a
>     ""solved"" problem. So there should be libraries you can use.

For cluster coordination/configuration I was thinking of using Consul.

>   *
>     Logging has been worked on by many a commercial Haskeller. My
> guess is that filtering is just a matter of looking at one of the
>     libraries from the right angle.

I intend to leverage existing libraries where possible. I want to
create an environment in which the commercial Haskeller never has to
choose and wire in a logging library. The decision is already made by
the framework. They just need to insert logging statements where

> Or just use Kubernetes. Whichever is easier. ;)

Kubernetes is a great tool, but it doesn't do what I envision.


More information about the Haskell-Cafe mailing list