Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Unitech/0b95854c9bec9033959e to your computer and use it in GitHub Desktop.
Save Unitech/0b95854c9bec9033959e to your computer and use it in GitHub Desktop.

Revisions

  1. Unitech revised this gist Jun 1, 2014. 1 changed file with 5 additions and 0 deletions.
    5 changes: 5 additions & 0 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -55,6 +55,11 @@ Most of the tools below allow you to:
    - Good: complete with monitoring, control URL
    - Bad: Seems to be massive ...

    ### PM2: <https://github.com/Unitech/pm2>

    - CLI process manager that encapsulates the cluster module
    - Permits 0s downtime reload (`pm2 reload all`)

    ### Naught: <https://github.com/superjoe30/naught>
    Note: naught2 was a temporary fork, but it got merged into master again

  2. @jedi4ever jedi4ever revised this gist Aug 2, 2013. 1 changed file with 4 additions and 1 deletion.
    5 changes: 4 additions & 1 deletion nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -92,7 +92,10 @@ talks about Zero Downtime Crashed by intelligently handling express errors with
    - All nodejs fleet modules: <https://nodejsmodules.org/new/tags/fleet>
    - <https://github.com/tblobaum/fleet-panel>
    - <https://github.com/carlos8f/fleet>

    - <https://github.com/nisaacson/fleet-stopall>
    - <https://github.com/nisaacson/fleet-atc>
    - <https://github.com/nisaacson/fleet-stopregex>

    Not related, but also cool: EC2-fleet <https://github.com/ashtuchkin/ec2-fleet>

    ## Older solutions:
  3. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -17,7 +17,7 @@ Note: not yet found a 100% reason to favor multi process/cluster nodejs over ngi
    - The rest off this post is to do clustering etc... yourself, otherwise you might want to check [actionhero.js](http://actionherojs.com/)

    ## Domains: keep it up , just a little bit longer
    - doing a try/catch with sync code doesn't work
    - doing a try/catch with async code doesn't work well
    - therefore it's very common in the nodejs world [to just exist on the exception](http://dshaw.github.io/2012-05-jsday/#/10)
    - Other approaches like catching the process.on('exception'), kinda work , at least you'll get some logging
    - Therefore many examples use a forever or systemd to restart their service
  4. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -30,7 +30,7 @@ Note: not yet found a 100% reason to favor multi process/cluster nodejs over ngi
    https://github.com/senchalabs/connect/blob/master/lib/proto.js#L160-L195)
    - Stack overflow explanation: <http://stackoverflow.com/questions/16174664/nodejs-error-handling-with-domains-and-socket-io>
    - Domains & Connect: <https://github.com/baryshev/connect-domain>
    - [Using connect-domain](http://masashi-k.blogspot.be/2012/12/express3-global-error-handling-domain.html)
    - [Example on how to use connect-domain](http://masashi-k.blogspot.be/2012/12/express3-global-error-handling-domain.html)

    ## Current Cluster/Domain Enhancements:
    The core included module is basic, it tells you to take care of all the stuff you need in zerodowntime environments.
  5. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -25,7 +25,6 @@ Note: not yet found a 100% reason to favor multi process/cluster nodejs over ngi
    - Therefore the concept of domains were introduced
    - <http://nodejs.org/api/domain.html>
    - with it you can create per 'domain' exceptions that will emit an on('error') to handle them

    - Domains & express: <https://github.com/mathrawka/express-domain-errors>
    - But it seems connect [grabs express exception with a try catch in it's code](
    https://github.com/senchalabs/connect/blob/master/lib/proto.js#L160-L195)
  6. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 7 additions and 0 deletions.
    7 changes: 7 additions & 0 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -26,6 +26,13 @@ Note: not yet found a 100% reason to favor multi process/cluster nodejs over ngi
    - <http://nodejs.org/api/domain.html>
    - with it you can create per 'domain' exceptions that will emit an on('error') to handle them

    - Domains & express: <https://github.com/mathrawka/express-domain-errors>
    - But it seems connect [grabs express exception with a try catch in it's code](
    https://github.com/senchalabs/connect/blob/master/lib/proto.js#L160-L195)
    - Stack overflow explanation: <http://stackoverflow.com/questions/16174664/nodejs-error-handling-with-domains-and-socket-io>
    - Domains & Connect: <https://github.com/baryshev/connect-domain>
    - [Using connect-domain](http://masashi-k.blogspot.be/2012/12/express3-global-error-handling-domain.html)

    ## Current Cluster/Domain Enhancements:
    The core included module is basic, it tells you to take care of all the stuff you need in zerodowntime environments.
    Most of the tools below allow you to:
  7. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -87,6 +87,8 @@ talks about Zero Downtime Crashed by intelligently handling express errors with
    - <https://github.com/tblobaum/fleet-panel>
    - <https://github.com/carlos8f/fleet>

    Not related, but also cool: EC2-fleet <https://github.com/ashtuchkin/ec2-fleet>

    ## Older solutions:
    (+2 years no updated & probably not nodejs > 0.8 compliant)
    So you can safely ignore these, but they can give inspiration
  8. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -14,6 +14,7 @@ In the last nodejs > 0.8 there is a cluster module (functional although marked e
    Note: not yet found a 100% reason to favor multi process/cluster nodejs over nginx/haproxy stuff:
    - <http://blog.argteam.com/coding/hardening-node-js-for-production-part-3-zero-downtime-deployments-with-nginx/>
    - Also see this [actionhero related blogpost on elegant downtime in relation to sockets , websockets etc..](http://blog.evantahler.com/blog/production-deployment-with-node-js-clusters.html)
    - The rest off this post is to do clustering etc... yourself, otherwise you might want to check [actionhero.js](http://actionherojs.com/)

    ## Domains: keep it up , just a little bit longer
    - doing a try/catch with sync code doesn't work
  9. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -13,6 +13,7 @@ In the last nodejs > 0.8 there is a cluster module (functional although marked e

    Note: not yet found a 100% reason to favor multi process/cluster nodejs over nginx/haproxy stuff:
    - <http://blog.argteam.com/coding/hardening-node-js-for-production-part-3-zero-downtime-deployments-with-nginx/>
    - Also see this [actionhero related blogpost on elegant downtime in relation to sockets , websockets etc..](http://blog.evantahler.com/blog/production-deployment-with-node-js-clusters.html)

    ## Domains: keep it up , just a little bit longer
    - doing a try/catch with sync code doesn't work
  10. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -11,6 +11,9 @@ In the last nodejs > 0.8 there is a cluster module (functional although marked e
    - Simple cluster example + domains: <http://shapeshed.com/uncaught-exceptions-in-node/>
    - Isaacs gist that was used as inspiration for the cluster doc - <https://gist.github.com/isaacs/5264418>

    Note: not yet found a 100% reason to favor multi process/cluster nodejs over nginx/haproxy stuff:
    - <http://blog.argteam.com/coding/hardening-node-js-for-production-part-3-zero-downtime-deployments-with-nginx/>

    ## Domains: keep it up , just a little bit longer
    - doing a try/catch with sync code doesn't work
    - therefore it's very common in the nodejs world [to just exist on the exception](http://dshaw.github.io/2012-05-jsday/#/10)
  11. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -58,6 +58,7 @@ talks about Zero Downtime Crashed by intelligently handling express errors with
    - To be investigated

    ### Up: <https://github.com/LearnBoost/up>
    - Seems to be the new learnbooost way for zero-downtime
    - <http://thechangelog.com/up-node-powered-zero-downtime-reloads-and-load-balancing/>

    ### Others to check:
  12. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -57,6 +57,9 @@ talks about Zero Downtime Crashed by intelligently handling express errors with
    - Build by nodejs god @isaacs
    - To be investigated

    ### Up: <https://github.com/LearnBoost/up>
    - <http://thechangelog.com/up-node-powered-zero-downtime-reloads-and-load-balancing/>

    ### Others to check:

    - All Cluster npm modules: <https://npmjs.org/browse/keyword/cluster>
  13. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 19 additions and 1 deletion.
    20 changes: 19 additions & 1 deletion nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -57,9 +57,27 @@ talks about Zero Downtime Crashed by intelligently handling express errors with
    - Build by nodejs god @isaacs
    - To be investigated

    ## Too simple:
    ### Others to check:

    - All Cluster npm modules: <https://npmjs.org/browse/keyword/cluster>
    - Bowl: <https://github.com/waka/node-bowl>
    - Herd: <https://github.com/segmentio/herd>
    - Jumpstarter: <https://npmjs.org/package/jumpstarter>
    - Multi Cluster: <https://npmjs.org/package/multi-cluster>
    - Pluribus: <https://github.com/twistdigital/pluribus>
    - Simple node cluster: <https://github.com/audreyt/node-cluster-server>

    ### Fleet: Extending the easy Git -> deploy
    - Initial blogpost on fleet: <http://blog.nodejs.org/2012/05/02/multi-server-continuous-deployment-with-fleet/>
    - Fleet - uses drones & propagit: <https://github.com/substack/fleet>
    - Propagit: A cascading git deployment: <https://github.com/substack/propagit>
    - blogpost on fleet usage: <http://opsite.wordpress.com/2013/05/04/automated-drone-management-system-for-node-js-fleet/>

    - Flotilla: <https://npmjs.org/package/flotilla>
    - All nodejs fleet modules: <https://nodejsmodules.org/new/tags/fleet>
    - <https://github.com/tblobaum/fleet-panel>
    - <https://github.com/carlos8f/fleet>

    ## Older solutions:
    (+2 years no updated & probably not nodejs > 0.8 compliant)
    So you can safely ignore these, but they can give inspiration
  14. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 2 additions and 5 deletions.
    7 changes: 2 additions & 5 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -32,7 +32,7 @@ Most of the tools below allow you to:
    - put itself offline and not accepting any new requests

    ### Recluster: <https://github.com/doxout/recluster/>
    - Code at: https://github.com/doxout/recluster/blob/master/index.js>
    - Code at: <https://github.com/doxout/recluster/blob/master/index.js>
    - [Featured in this 10 steps to node Awesomeness](http://qzaidi.github.io/2013/05/14/node-in-production/)

    - Good: Simple and in use
    @@ -61,14 +61,11 @@ talks about Zero Downtime Crashed by intelligently handling express errors with
    - Simple node cluster: <https://github.com/audreyt/node-cluster-server>

    ## Older solutions:

    - InfoQ blogpost on multi-core nodejs (is from 2010) - <http://www.infoq.com/articles/multi-core-node-js>

    (+2 years no updated & probably not nodejs > 0.8 compliant)
    So you can safely ignore these, but they can give inspiration

    - InfoQ blogpost on multi-core nodejs (is from 2010) - <http://www.infoq.com/articles/multi-core-node-js>
    - **The inspiration:** has some cool options [but _alas < 0.8_ compliant](https://github.com/LearnBoost/cluster/issues/168) <http://learnboost.github.io/cluster/>

    - <https://github.com/pgte/fugue/wiki/How-Fugue-Works>
    - <https://github.com/kriszyp/multi-node> +
    [good writeup](http://www.sitepen.com/blog/2010/07/14/multi-node-concurrent-nodejs-http-server/)
  15. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -28,7 +28,8 @@ Most of the tools below allow you to:
    - wait for workers to correctly close or sigKill if past timeout
    - sigUSR2 to reload workers one by one
    - some provide a cli to do the work using a socket/network connection
    - kill a worker that has become unresponsive by waiting for a hardbeat
    - kill a worker that has become unresponsive by waiting for a heartbeat
    - put itself offline and not accepting any new requests

    ### Recluster: <https://github.com/doxout/recluster/>
    - Code at: https://github.com/doxout/recluster/blob/master/index.js>
  16. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 0 additions and 2 deletions.
    2 changes: 0 additions & 2 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -16,13 +16,11 @@ In the last nodejs > 0.8 there is a cluster module (functional although marked e
    - therefore it's very common in the nodejs world [to just exist on the exception](http://dshaw.github.io/2012-05-jsday/#/10)
    - Other approaches like catching the process.on('exception'), kinda work , at least you'll get some logging
    - Therefore many examples use a forever or systemd to restart their service

    - But imagine , 1 url gives an eror, it will actually exit the complete server! Lots of CPU power waisted for a single error
    - Therefore the concept of domains were introduced
    - <http://nodejs.org/api/domain.html>
    - with it you can create per 'domain' exceptions that will emit an on('error') to handle them


    ## Current Cluster/Domain Enhancements:
    The core included module is basic, it tells you to take care of all the stuff you need in zerodowntime environments.
    Most of the tools below allow you to:
  17. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 14 additions and 2 deletions.
    16 changes: 14 additions & 2 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    ## The basics
    ## Clustering: The basics

    The trick? pass the file descriptor from a parent process and have the server.listen reuse that descriptor.
    So multiprocess in their own memory space (but with ENV shared usually)
    @@ -11,7 +11,19 @@ In the last nodejs > 0.8 there is a cluster module (functional although marked e
    - Simple cluster example + domains: <http://shapeshed.com/uncaught-exceptions-in-node/>
    - Isaacs gist that was used as inspiration for the cluster doc - <https://gist.github.com/isaacs/5264418>

    ## Current Enhancements:
    ## Domains: keep it up , just a little bit longer
    - doing a try/catch with sync code doesn't work
    - therefore it's very common in the nodejs world [to just exist on the exception](http://dshaw.github.io/2012-05-jsday/#/10)
    - Other approaches like catching the process.on('exception'), kinda work , at least you'll get some logging
    - Therefore many examples use a forever or systemd to restart their service

    - But imagine , 1 url gives an eror, it will actually exit the complete server! Lots of CPU power waisted for a single error
    - Therefore the concept of domains were introduced
    - <http://nodejs.org/api/domain.html>
    - with it you can create per 'domain' exceptions that will emit an on('error') to handle them


    ## Current Cluster/Domain Enhancements:
    The core included module is basic, it tells you to take care of all the stuff you need in zerodowntime environments.
    Most of the tools below allow you to:

  18. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -36,6 +36,9 @@ Most of the tools below allow you to:
    ### Naught: <https://github.com/superjoe30/naught>
    Note: naught2 was a temporary fork, but it got merged into master again

    talks about Zero Downtime Crashed by intelligently handling express errors with domains
    - <https://github.com/mathrawka/express-domain-errors>

    - Good: simple, uses domains
    - Bad: seems to do it's own logging

  19. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 12 additions and 1 deletion.
    13 changes: 12 additions & 1 deletion nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -1,13 +1,24 @@
    ## The basics

    The trick? pass the file descriptor from a parent process and have the server.listen reuse that descriptor.
    So multiprocess in their own memory space (but with ENV shared usually)

    It does not balance, it leaves it to the kernel.

    In the last nodejs > 0.8 there is a cluster module (functional although marked experimental)
    - <http://nodejs.org/api/cluster.html>
    - Simple cluster example: <https://gist.github.com/dsibilly/2992412>
    - Simple cluster example + domains: <http://shapeshed.com/uncaught-exceptions-in-node/>
    - Isaacs gist that was used as inspiration for the cluster doc - <https://gist.github.com/isaacs/5264418>

    ## Current Enhancements:
    managing the workers etc, instead of DIY cluster
    The core included module is basic, it tells you to take care of all the stuff you need in zerodowntime environments.
    Most of the tools below allow you to:

    - wait for workers to correctly close or sigKill if past timeout
    - sigUSR2 to reload workers one by one
    - some provide a cli to do the work using a socket/network connection
    - kill a worker that has become unresponsive by waiting for a hardbeat

    ### Recluster: <https://github.com/doxout/recluster/>
    - Code at: https://github.com/doxout/recluster/blob/master/index.js>
  20. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -23,13 +23,13 @@ managing the workers etc, instead of DIY cluster
    - Bad: Seems to be massive ...

    ### Naught: <https://github.com/superjoe30/naught>
    (Note: naught2 was a temporary fork, but it got merged into master again)
    Note: naught2 was a temporary fork, but it got merged into master again

    - Good: simple, uses domains
    - Bad: seems to do it's own logging

    ### Isaac's own cluster-master : <https://github.com/isaacs/cluster-master>

    ### cluster-master : <https://github.com/isaacs/cluster-master>
    - Build by nodejs god @isaacs
    - To be investigated

    ## Too simple:
  21. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -9,7 +9,7 @@ In the last nodejs > 0.8 there is a cluster module (functional although marked e
    ## Current Enhancements:
    managing the workers etc, instead of DIY cluster

    ### Recluster: < <https://github.com/doxout/recluster/>
    ### Recluster: <https://github.com/doxout/recluster/>
    - Code at: https://github.com/doxout/recluster/blob/master/index.js>
    - [Featured in this 10 steps to node Awesomeness](http://qzaidi.github.io/2013/05/14/node-in-production/)

  22. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 24 additions and 6 deletions.
    30 changes: 24 additions & 6 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -9,13 +9,31 @@ In the last nodejs > 0.8 there is a cluster module (functional although marked e
    ## Current Enhancements:
    managing the workers etc, instead of DIY cluster

    - Recluster [Featured in this 10 steps to node Awesomeness](http://qzaidi.github.io/2013/05/14/node-in-production/)
    <https://github.com/doxout/recluster/blob/master/index.js>
    - Framework in use at ebay: <https://github.com/ql-io/cluster2>
    - Naught: <https://github.com/superjoe30/naught> (Note: naught2 was a temporary fork, but it got merged into master again)
    - Simple node cluster: <https://github.com/audreyt/node-cluster-server>
    - Isaac's own cluster-master : <https://github.com/isaacs/cluster-master>
    ### Recluster: < <https://github.com/doxout/recluster/>
    - Code at: https://github.com/doxout/recluster/blob/master/index.js>
    - [Featured in this 10 steps to node Awesomeness](http://qzaidi.github.io/2013/05/14/node-in-production/)

    - Good: Simple and in use
    - Bad: No CLI , No domains, Cannot pass args

    ### Cluster2: <https://github.com/ql-io/cluster2>
    - Framework in use at ebay:

    - Good: complete with monitoring, control URL
    - Bad: Seems to be massive ...

    ### Naught: <https://github.com/superjoe30/naught>
    (Note: naught2 was a temporary fork, but it got merged into master again)

    - Good: simple, uses domains
    - Bad: seems to do it's own logging

    ### Isaac's own cluster-master : <https://github.com/isaacs/cluster-master>

    - To be investigated

    ## Too simple:
    - Simple node cluster: <https://github.com/audreyt/node-cluster-server>

    ## Older solutions:

  23. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -4,6 +4,7 @@ In the last nodejs > 0.8 there is a cluster module (functional although marked e
    - <http://nodejs.org/api/cluster.html>
    - Simple cluster example: <https://gist.github.com/dsibilly/2992412>
    - Simple cluster example + domains: <http://shapeshed.com/uncaught-exceptions-in-node/>
    - Isaacs gist that was used as inspiration for the cluster doc - <https://gist.github.com/isaacs/5264418>

    ## Current Enhancements:
    managing the workers etc, instead of DIY cluster
  24. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -26,8 +26,9 @@ So you can safely ignore these, but they can give inspiration
    - **The inspiration:** has some cool options [but _alas < 0.8_ compliant](https://github.com/LearnBoost/cluster/issues/168) <http://learnboost.github.io/cluster/>

    - <https://github.com/pgte/fugue/wiki/How-Fugue-Works>
    - <https://github.com/kriszyp/multi-node> + [good writeup](http://www.sitepen.com/blog/2010/07/14/multi-node-concurrent-nodejs-http-server/)
    - <https://github.com/dvv/stereo
    - <https://github.com/kriszyp/multi-node> +
    [good writeup](http://www.sitepen.com/blog/2010/07/14/multi-node-concurrent-nodejs-http-server/)
    - <https://github.com/dvv/stereo>

    ## Worth mentioning:
    - <http://savanne.be/articles/deploying-node-js-with-systemd/>
  25. @jedi4ever jedi4ever revised this gist Jul 25, 2013. 1 changed file with 6 additions and 2 deletions.
    8 changes: 6 additions & 2 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,9 @@
    ## The basics

    In the last nodejs > 0.8 there is a cluster module (functional although marked experimental)
    - <http://nodejs.org/api/cluster.html>
    - Simple cluster example: <https://gist.github.com/dsibilly/2992412>
    - Simple cluster example + domains:
    - Simple cluster example + domains: <http://shapeshed.com/uncaught-exceptions-in-node/>

    ## Current Enhancements:
    managing the workers etc, instead of DIY cluster
    @@ -11,6 +13,7 @@ managing the workers etc, instead of DIY cluster
    - Framework in use at ebay: <https://github.com/ql-io/cluster2>
    - Naught: <https://github.com/superjoe30/naught> (Note: naught2 was a temporary fork, but it got merged into master again)
    - Simple node cluster: <https://github.com/audreyt/node-cluster-server>
    - Isaac's own cluster-master : <https://github.com/isaacs/cluster-master>


    ## Older solutions:
    @@ -27,4 +30,5 @@ So you can safely ignore these, but they can give inspiration
    - <https://github.com/dvv/stereo

    ## Worth mentioning:
    - <http://savanne.be/articles/deploying-node-js-with-systemd/>
    - <http://savanne.be/articles/deploying-node-js-with-systemd/>
    - [Stackoverflow discussion Domains or forever](http://stackoverflow.com/questions/14611749/forever-or-domain-which-of-them-is-better-for-node-js-continuous-work#comment20409657_14614261)
  26. @jedi4ever jedi4ever created this gist Jul 25, 2013.
    30 changes: 30 additions & 0 deletions nodejs-cluster-zero-downtime.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    ## The basics

    - Simple cluster example: <https://gist.github.com/dsibilly/2992412>
    - Simple cluster example + domains:

    ## Current Enhancements:
    managing the workers etc, instead of DIY cluster

    - Recluster [Featured in this 10 steps to node Awesomeness](http://qzaidi.github.io/2013/05/14/node-in-production/)
    <https://github.com/doxout/recluster/blob/master/index.js>
    - Framework in use at ebay: <https://github.com/ql-io/cluster2>
    - Naught: <https://github.com/superjoe30/naught> (Note: naught2 was a temporary fork, but it got merged into master again)
    - Simple node cluster: <https://github.com/audreyt/node-cluster-server>


    ## Older solutions:

    - InfoQ blogpost on multi-core nodejs (is from 2010) - <http://www.infoq.com/articles/multi-core-node-js>

    (+2 years no updated & probably not nodejs > 0.8 compliant)
    So you can safely ignore these, but they can give inspiration

    - **The inspiration:** has some cool options [but _alas < 0.8_ compliant](https://github.com/LearnBoost/cluster/issues/168) <http://learnboost.github.io/cluster/>

    - <https://github.com/pgte/fugue/wiki/How-Fugue-Works>
    - <https://github.com/kriszyp/multi-node> + [good writeup](http://www.sitepen.com/blog/2010/07/14/multi-node-concurrent-nodejs-http-server/)
    - <https://github.com/dvv/stereo

    ## Worth mentioning:
    - <http://savanne.be/articles/deploying-node-js-with-systemd/>