Ghost does not support clustering or multiple dynos (CDN/HTTP-cache required to scale)
See original GitHub issueIssue Description
Hey @cobyism 👋 I’ve had a look at this Ghost/Heroku setup and unfortunately it promotes some practices that will result in broken Ghost installations.
Ghost does not support clustering in any form due to in-memory caches that will result in each instance getting out of sync with each other - there can only be 1 instance of Ghost for each site.
Can you please remove any mention of clustering, scaling up of dynos (unless advising not to do so!), and the use of node-cluster
?
Issue Analytics
- State:
- Created 4 years ago
- Comments:16
Top Results From Across the Web
Clustering, sharding, HA and other multi-server setups - Ghost
Ghost doesn't support load-balanced clustering or multi-server setups of any description, there should only be one Ghost instance per site.
Read more >Node cluster versus Dynos scaling - Stack Overflow
As far as I understood it, if I make use of node cluster functionality I will end up with the total memory available...
Read more >Optimizing Node.js Application Concurrency
Instead, Node.js apps must fork multiple processes to maximize their available resources. This is called “clustering,” and is supported by ...
Read more >How to Scale Like a Boss with Heroku Dynos - DZone Web Dev
After all, scaling up too quickly will consume more costs than required and scaling up after the fact will impact performance and potentially ......
Read more >Phoenix Channels on Heroku apps with multiple dynos
It seems that when I have 2 dynos, some messages are not received on the channel. There's no error, just lost messages. I'm...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Thanks for your reponse @johnonolan
I’m very happy to hear that Ghost can squeeze so much performance out of a single thread of javascript. That is clearly a testament to Ghost’s engineering practices and history to have so much confidence about this architecture.
Heroku’s dyno scaling is not just for “scaling code” but also to support rolling deployments without downtime and to load balance across healthy dynos if a server/dyno suffers hardware failure.
I always prefer operating a service that can scale horizontally, separate from whether or not the “code scales properly”.
How do you deploy new versions of a Ghost server without downtime or deal with hardware outages if Ghost does not support multiple servers?
To clarify, @mars, this issue was opened by way of an olive branch as an offer of help and guidance. We had both discussed and intended to offer to take over the project and have it officially maintained by the Ghore core team.
Unfortunately the petty hostility in this thread put an end to that idea.
All the best