weaveworks / mesh

A tool for building distributed applications.
Apache License 2.0
889 stars 107 forks source link

How does Mesh compare with Serf from Hashicorp? #48

Closed rdeusser closed 8 years ago

rdeusser commented 8 years ago

Pretty much the title. I'm curious to know if the design goals are similar and what the state of Mesh is.

peterbourgon commented 8 years ago

Serf is designed to provide "cluster membership, failure detection, and orchestration". Mesh provides all of that, plus more: its own CRDT-style data layer; optional, direct connections between peers; larger gossip message sizes (megabytes instead of half a KB); etc.

In terms of state, Mesh is already used by Weave Net as the fundamental underlying abstraction — it was actually extracted from Net in the first place. It's also being explored by e.g. Prometheus Alert Manager as a way to manage distributed state. The API will change (simplify) in the coming weeks and months, so if you want to use it, be sure to vendor it. But, it is production ready, if that's what you were getting at.

Did that answer your question?

fabxc commented 8 years ago

I'm the person exploring it for the Prometheus Alertmanager. The distributed state part was the critical feature Serf was missing for us. Mesh still has some API nits but it worked right out the box anyway. So the desired features are working correctly and well as far as I can tell.

rdeusser commented 8 years ago

@peterbourgon That's more than I was hoping for. I've been considering Serf/Mesh in a few projects of mine. Thanks!