azuqua / notp

A library for writing distributed systems that use a gossip protocol to communicate state management, consistent hash rings for sharding, and vector clocks for history. https://www.npmjs.com/package/clusterluck
MIT License
169 stars 7 forks source link

Would you recommend using this library in production? #54

Closed ncthbrt closed 6 years ago

ncthbrt commented 6 years ago

Hi there. I'm building a library called nact. The design goal behind it is to make actor systems and the abstractions one can build atop them more accessible to JavaScript developers.

With this goal, I decided to start out by iterating on user facing APIs rather than immediately working on clustering, service discovery and other more technical aspects of distributed actor systems.

While it is a tiny data point, my team was able to grasp the concept of how actor systems work far more easily than I've experienced with other teams when introducing Akka.Net. I'm sure there is a lot of ways to increase usability and reduce boilerplate, but I feel the project is now at a stage where I want to start looking at ways to enable cluster sharding and service discovery.

Would you say clsuterluck is robust enough for production use? I would love to use something like this in nact.

aembke commented 6 years ago

Hi @ncthbrt, that's very interesting and we'll definitely be following along with that library.

To answer your question: yes I think this is production ready. We've been using it in production for about 6-8 months on an application that uses it for sharding stateful network connections across a cluster, and it's worked well so far. Granted, that application doesn't see a ton of traffic yet, but on our deployments of 3-6 nodes it hasn't shown any problems.

That being said, before using anything in production it's best to know what its problems are, and this is still JavaScript and the library does have its limitations and caveats. For good measure I'll list out some of those now, that way if you do hit any of these hopefully this list will help.

ncthbrt commented 6 years ago

Thanks for the detailed answer, @aembke. None of the caveats seem like huge deal breakers. I think I'll create a prototype implementation when space on our road-map opens up.

Hope this isn't too much to ask, but wouldn't mind a review when that happens; you know your lib the best after all. :)

aembke commented 6 years ago

Yeah absolutely, feel free to ping myself or @kevinwilson541 whenever you'd like.