Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 12 11:16

    dependabot[bot] on npm_and_yarn

    (compare)

  • Oct 12 11:16

    artakvg on master

    Bump eslint-utils from 1.4.0 to… Merge pull request #73 from sfa… (compare)

  • Oct 12 11:16
    artakvg closed #73
  • Sep 13 13:36

    artakvg on ts

    (compare)

  • Sep 13 13:35

    artakvg on ts

    draft version envelope in ts envelop reviewed, types fixed (compare)

  • Sep 07 22:35
    dependabot[bot] labeled #73
  • Sep 07 22:35
    dependabot[bot] opened #73
  • Sep 07 22:35

    dependabot[bot] on npm_and_yarn

    Bump eslint-utils from 1.4.0 to… (compare)

  • Aug 13 14:06
    artakvg closed #71
  • Aug 13 14:06

    artakvg on master

    Update preinstall.sh Merge branch 'zeronode-preinsta… updated version and deps (compare)

  • Aug 03 21:50

    artakvg on master

    Update issue templates (compare)

  • Aug 03 21:49

    artakvg on master

    Create CODE_OF_CONDUCT.md Merge pull request #72 from sfa… (compare)

  • Aug 03 21:49
    artakvg closed #72
  • Aug 03 21:48
    artakvg opened #72
  • Aug 03 21:48

    artakvg on add-code-of-conduct-1

    Create CODE_OF_CONDUCT.md (compare)

  • Aug 03 21:47

    artakvg on master

    Update CONTRIBUTING.md (compare)

  • Jul 29 16:48
    artakvg opened #71
  • Jul 29 16:48

    artakvg on zeronode-preinstall

    Update preinstall.sh (compare)

  • Jul 09 15:44
    artakvg synchronize #69
  • Jul 09 15:44

    artakvg on headerenvelope

    initial changes updated dep fix(tests) and 5 more (compare)

Artak
@artakvg

Why you need ZeroNode ?
Application backends are beckaming complex these days and there are lots of moving parts talking to each other through network. There is a great difference between sending a few bytes from A to B, and doing messaging in reliable way. ❗️❗️❗️

How to handle dynamic components ❓ (i.e., pieces that come and/or go away temporarily, scaling a microservice instances )
How to handle messages that we can't deliver immediately ❓ (e.g waiting for a component to come back online)
How to route messages in complex microservice architechture ❓ (i.e. one to one, one to many, custom grouping messaging)
How we handle network errors ❓ (i.e., reconnecting of various pieces)
We created Zeronode on top of zeromq as to address these and some more common problems that developers will face once building solid systems.
With zeronode its just super simple to create complex server-to-server communications (i.e. build network topologies).

Basics
Zeronode allows to create complex network topologies (i.e. line, ring, partial or full mesh, star, three, hybrid ...) But lets start from the basics. You want to send a message from A to B (💻 --> 💻) and that means you'll need to create 2 nodes. Think of every node as an actor (i.e. participant, minimal building block) in your networking system.

👉 node can connect to multiple nodes (i.e node.connect(addressOfNodeB), node.connect(addressOfnodeC))
👉 nodes can connect to particular node if the latest is binded to some interface (i.e node.bind(interfaceAddress))
👉 if node A is connected to node B then we have a channel between them and both nodes can talk to each other
👉 node-s are resilent to restarts, network failures, connect/bind order 💪🤘👍
👉 node-s can run on same or different machines, processes, containers etc ...
👉 data transfers between node-s via both request/reply and tick (fire forget) patterns
🎓🎓🎓
Much more interesting patterns and features you can discover by reading the document or try to reach us via Drift Chat under Steadfast.tech

Installation & Important notes
Zeronode depends on zeromq
📢📢 For Debian, Ubuntu, MacOS, Fedora, Redhat you can just run

$ npm install zeronode
and it'll also install zeromq for you.
Kudos 🙌 to Dave for adding install scripts. For other platforms please open an issue or feel free to contrubute.

Artak
@artakvg
Happy to announce that zeronode 1.1.6 is released with 90% + test coverage
Justin
@fluidnotions
Hey would this make sense for a resilient IOT mesh on a LAN or VPN ... where there is no central node, it's completely distributed? I was looking an seneca-mesh but it doesn't look actively maintained
How would I get znodes to discover eachother on a lan?
Christian Roy
@roychri
On the npm page when I click on the github link it gets me here: https://github.com/sfast/zeronode
and shows a 404.
Artak
@artakvg
@fluidnotions I think you can just request a range of ports and see if there is zeronode behind by replying to request with some custom data you want to be shared during discovery
@roychri we'll make the repo public it in next month
Artak
@artakvg
Zeronode github repo is now public 🙌🙌🙌🙌
Artak
@artakvg
Zeronode 1.1.20 published, Snyk-ed .
lusine-pribilskaya
@lusine-pribilskaya
hi, anybody here?
Artak
@artakvg
This message was deleted
Yes @lusine-pribilskaya , just paste your question here
Walle Cyril
@GrosSacASac
Hi could you provide advantages/disadvantages compared to deepstream ?