Million User Webchat with Full Stack Flux, React, Redis and PostgreSQL
11–20 of 41 posts
Re: Million User Webchat with Full Stack Flux, React, Redis and PostgreSQL
#12Earlier quoted context omitted.
but has this design been implemented to effectively handle something close to a million users Obviously not. Some of his numbers are off by an order of magnitude. E.g. he claims "10 million messages/sec" for a single redis instance. In reality redis tops out at well under one million messages/sec; http://redis.io/topics/benchmarks The design is almost comically bad (single source of truth for a "scalable" chat app?!)…
Oh, you're absolutely right, 10M/s is a mistake, which I've corrected. Few remarks though: - it's still way below the number of actions we're talking about here (~100k/s) - since redis is only used as a generic MQ and not as a store, it can be sharded at the app level without the pain usually associated with redis clustering - I've deployed a similar (but less performant) design for the player of a gaming website, wh…
How about just not making wild claims about byzantine fantasy designs that you never tested under any kind of load.
There has been a lot of research in messaging architectures, some of the best message brokers are free. As it happens, none of them have any resemblance to your proposed design.
RabbitMQ has been benchmarked[1] to 1 million messages/sec on 30 servers and works very well for many people.
Why not start with that?
[1] http://blog.pivotal.io/pivotal/products/rabbitmq-hits-one-mi...
Re: Million User Webchat with Full Stack Flux, React, Redis and PostgreSQL
#13Do you have anything like this up on github?
Re: Million User Webchat with Full Stack Flux, React, Redis and PostgreSQL
#14Earlier quoted context omitted.
Oh, you're absolutely right, 10M/s is a mistake, which I've corrected. Few remarks though: - it's still way below the number of actions we're talking about here (~100k/s) - since redis is only used as a generic MQ and not as a store, it can be sharded at the app level without the pain usually associated with redis clustering - I've deployed a similar (but less performant) design for the player of a gaming website, wh…
Feedback? How about just not making wild claims about byzantine fantasy designs that you never tested under any kind of load. There has been a lot of research in messaging architectures, some of the best message brokers are free. As it happens, none of them have any resemblance to your proposed design. RabbitMQ has been benchmarked[1] to 1 million messages/sec on 30 servers and works very well for many people. Why no…
I think I may have failed to express my point, though. I'm not building a message queue, as it is certainly a very hard problem that has been engineered for years by people way smarter than me :) I'm merely leveraging the goodness of their implementations (in my case redis, but RabbitMQ is also an option I've considered explicitly in my post).
The chat is a contrived example to show that even under high load, full-scale flux over the wire is a reasonable option. As for "any kind of serious load", well, maybe my example fails to meet the requirements, but unless I'm building Facebook, I think I've faced something serious enough to be able to think about my next step.
Re: Million User Webchat with Full Stack Flux, React, Redis and PostgreSQL
#15Earlier quoted context omitted.
Feedback? How about just not making wild claims about byzantine fantasy designs that you never tested under any kind of load. There has been a lot of research in messaging architectures, some of the best message brokers are free. As it happens, none of them have any resemblance to your proposed design. RabbitMQ has been benchmarked[1] to 1 million messages/sec on 30 servers and works very well for many people. Why no…
This benchmark is indeed very interesting. I think I may have failed to express my point, though. I'm not building a message queue, as it is certainly a very hard problem that has been engineered for years by people way smarter than me :) I'm merely leveraging the goodness of their implementations (in my case redis, but RabbitMQ is also an option I've considered explicitly in my post). The chat is a contrived example…
And as for the high load you haven't actually experienced high load until you put this into production with a million users.
To make that clearer: you can design a system for any number of users, the only relevant question is how it held up in practice and as long as you haven't had a million concurrent users you just don't know (and probably it won't).
Re: Million User Webchat with Full Stack Flux, React, Redis and PostgreSQL
#16Earlier quoted context omitted.
Feedback? How about just not making wild claims about byzantine fantasy designs that you never tested under any kind of load. There has been a lot of research in messaging architectures, some of the best message brokers are free. As it happens, none of them have any resemblance to your proposed design. RabbitMQ has been benchmarked[1] to 1 million messages/sec on 30 servers and works very well for many people. Why no…
This benchmark is indeed very interesting. I think I may have failed to express my point, though. I'm not building a message queue, as it is certainly a very hard problem that has been engineered for years by people way smarter than me :) I'm merely leveraging the goodness of their implementations (in my case redis, but RabbitMQ is also an option I've considered explicitly in my post). The chat is a contrived example…
That may be the kernel of the problem here; you built a subset of a message queue without realising it.
RabbitMQ has a websocket plugin[1]. Just make your javascript connect directly to a RabbitMQ cluster and you have a solid, scalable foundation - almost for free.
[1] http://www.rabbitmq.com/blog/2012/05/14/introducing-rabbitmq...
Re: Million User Webchat with Full Stack Flux, React, Redis and PostgreSQL
#17Scott Kevill does it on a single machine (last time I checked) with hand-rolled C++ and close attention to the details of how the Linux networking stack works.
Re: Million User Webchat with Full Stack Flux, React, Redis and PostgreSQL
#18Earlier quoted context omitted.
Oh, you're absolutely right, 10M/s is a mistake, which I've corrected. Few remarks though: - it's still way below the number of actions we're talking about here (~100k/s) - since redis is only used as a generic MQ and not as a store, it can be sharded at the app level without the pain usually associated with redis clustering - I've deployed a similar (but less performant) design for the player of a gaming website, wh…
Feedback? How about just not making wild claims about byzantine fantasy designs that you never tested under any kind of load. There has been a lot of research in messaging architectures, some of the best message brokers are free. As it happens, none of them have any resemblance to your proposed design. RabbitMQ has been benchmarked[1] to 1 million messages/sec on 30 servers and works very well for many people. Why no…
I can understand why people like you are pissed by this kind of blog post which reads a bit too much like an ad, but i think it's still good that people are trying to reinvent the wheel with completely new technologies, because sometimes it leads to surprising results.
Maybe the OP should add some warnings in the blog, saying that it's an highly experimental design that people shouldn't try to use for their own projects at the moment...
Re: Million User Webchat with Full Stack Flux, React, Redis and PostgreSQL
#19Earlier quoted context omitted.
but has this design been implemented to effectively handle something close to a million users Obviously not. Some of his numbers are off by an order of magnitude. E.g. he claims "10 million messages/sec" for a single redis instance. In reality redis tops out at well under one million messages/sec; http://redis.io/topics/benchmarks The design is almost comically bad (single source of truth for a "scalable" chat app?!)…
Oh, you're absolutely right, 10M/s is a mistake, which I've corrected. Few remarks though: - it's still way below the number of actions we're talking about here (~100k/s) - since redis is only used as a generic MQ and not as a store, it can be sharded at the app level without the pain usually associated with redis clustering - I've deployed a similar (but less performant) design for the player of a gaming website, wh…
Re: Million User Webchat with Full Stack Flux, React, Redis and PostgreSQL
#20Great post, but has this design been implemented to effectively handle something close to a million users ( or even 100k and show that no part is overheating) ? As in every new and complicated design, i'm a bit skeptical of rules of thumb calculations. You never know what the wrong latency issue at the wrong place can do...
but has this design been implemented to effectively handle something close to a million users Obviously not. Some of his numbers are off by an order of magnitude. E.g. he claims "10 million messages/sec" for a single redis instance. In reality redis tops out at well under one million messages/sec; http://redis.io/topics/benchmarks The design is almost comically bad (single source of truth for a "scalable" chat app?!)…