websocket queue
gedw99 opened this issue · 5 comments
This project is retty interesting.
You might want to look into adding NATS to this system:
Web sockets for NATS and soon Nats Jetstream is happening. See:
https://github.com/nats-io/nats.ws
It would make it easier to have 100's of distributed golang servers in sync with browser clients.
Not sure if you know NATS ?
The CLI now has Jetstream included ..
Let me know what you think...
Very interested!
Scaling things is certainly one of the most difficult things to do, what is your experience with the Nats service?
I am thinking lately about implementing an adapter concept for interoperability with other types of communication and that (NATS) would be a good starting point
I was wondering how different this project is from https://github.com/jfyne/live by @jfyne
could you outline any key differences for me?
I was wondering how different this project is from https://github.com/jfyne/live by @jfyne
could you outline any key differences for me?
Not many, but in my view some are relevant.
For me it is a very important the possibility of using components (although not mature in golive) there is this possibility since the first versions. I was also very concerned about keeping everything very simple, easy enough for any JS/front-end programmer to pick up and be productive without understanding the entire Go system.
ok cool. thanks.
Very interested!
Scaling things is certainly one of the most difficult things to do, what is your experience with the Nats service?
I am thinking lately about implementing an adapter concept for interoperability with other types of communication and that (NATS) would be a good starting point
Nats is really easy to integrate and their tooling is high quality.
We wrapped it with a GRPC and GRPC-web API so that under the API we can use NATS and other bits without breaking the clients or polluting them . GRPC-web under the Hof provides the web socket for you using the improbable golang lib. The client code needs to be GRPC aware though so you would need to make slight changes to you JavaScript code just so you know.
https://github.com/improbable-eng/grpc-web
NATS can be scaled out itself but it’s database for durability needs PostgreSQL . So we are using Liftbridge as a GRPC wrapper that scales it out to be just like Kafka with no DB needed because it’s a distributed WAL design.
https://github.com/liftbridge-io/liftbridge
Nats jetstream might replace the need for Liftbridge and in the next few weeks we will know when the NATS team bring out V2 officially. A lot of devs are waiting too see which way they go.