-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support websockets #13
Comments
Nats does web sockets and can leverage the many FDB instances as it was client side load balancing The whole actor system with FDM seems like a great match with NATS. i use nats with Wazero. Nats has a KV and Blob store and so can act as a store and forward network into Nola too . nats.go also compilesvto wasm . I use it inside browsers where it makes web socket connects to the nats server |
Never heard of NATS until now. Looks interesting. Are you using it for messaging only or are you also using jet stream? |
I use it for serverless, because it is a control pane and a data plane. So you can configure an endpoint for a massage exchange, and then let many Actor use that endpoints. You can also secure that endpoint and create users ( which the actors will i guess impersonate ) - see the NSC tool. In terms of transpots you get NATS, WS and MQTT. Its easy to also make it work over http. you can even stick Caddy in front of it and then have both NATS and HTTP routing through it. Free load balancing because the nats.go client does client side LB. Background NATS is really big and used by Intel, Nokia, Mastercard and many other projects that need a global control plane and data plane that self runs. Been around for 10 years. Before that it was TIBCO Rendevous, but the architect left and created NATS. NATS can eiher run in mem or use durable store ( aka jetstream ). When i saw the actors design you had NATS was an obvious thing. These are the bits you want. Copied out of my makefile:
|
@gedw99 I've heard about NATS many times but have yet to use it. However, wouldn't it require running NATS servers? Since it's a client-server architecture. So this makes the architecture more complex. |
Nats can run embedded in any golang app . It can run as a leaf node then too. Or it runs can as it’s own server has baked in security too. And storage .. kine is a decent example that shows both approaches https://github.com/k3s-io/kine https://github.com/k3s-io/kine/blob/master/examples/nats.md Nokia, Intel. Mastercard and many cloud hyperscakers run it . Not a toy :) |
I also run wrapped for SSE and quic above it as needed . Web sockets works create as does mqtt. |
Saw tons of registry issues. I use it as a registry too in lots of projects Nats kv and nats obj Store is useful for these use cases. docs make it clear so you can check them |
Not sure exactly what this should look like, but for Actor it would be nice to be able to establish websocket connections to them to make it easier to implement realtime applications like chat and games.
The text was updated successfully, but these errors were encountered: