workers-chat-demo
Sprocket
workers-chat-demo | Sprocket | |
---|---|---|
6 | 1 | |
800 | - | |
2.8% | - | |
4.2 | - | |
about 2 months ago | - | |
JavaScript | ||
BSD 3-clause "New" or "Revised" License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
workers-chat-demo
-
asyncio + multiprocessing. Issues with pickling complex python objects.
This idea was also sparked from cloudflares chat room example using something on their platform the call durable objects. But instead of offloading each chat room to a durable object I wanted to try to offload it to a process.
-
When Serverless really shines (and when to avoid it)
If you want to see a code example of a stateful serverless worker, this durable object chat demo is kinda neat: https://github.com/cloudflare/workers-chat-demo
-
Ask HN: What's a global, low throughput, low latency message bus
If you wanted something where you could get pretty far without spending any money, Cloudflare Workers + Durable Objects would be an interesting path. You would have to implement some of the functionality yourself, but there are some examples.
Like this example chat app: https://github.com/cloudflare/workers-chat-demo/blob/master/... It supports private chat rooms, which is somewhat analogous to a pub sub topic.
- OAuth with Cloudflare Workers on a Statically Generated Site
-
Cloudflare’s Pace of Innovation
Durable Objects[0] let you store data on the edge and provide a lot more than a key/value store. This is a primitive you could build arbitrary databases on top of.
The edge chat demo[1] is a working, scalable real-time chat service hosted entirely on the edge using Workers + Durable Objects, even featuring per-user cross-room rate limiting. As written, it can support millions of chat rooms and users, and it's about 500 lines of code.[2]
The benefit here is that it's much easier to build scalable distributed systems on Workers and Durable Objects than on other platforms. The fact that they run on the edge as close to end users as possible is just a bonus.
[0] https://blog.cloudflare.com/introducing-workers-durable-obje...
[1] https://edge-chat-demo.cloudflareworkers.com/
[2] https://github.com/cloudflare/workers-chat-demo/blob/master/...
(Disclosure: I'm the tech lead for Cloudflare Workers.)
-
DoS Attacks against my Online Game
Have you looked into using a serverless pub/sub model, like Cloudflare's Workers KV? The example they give is a simple IRC-like distributed chatroom (https://github.com/cloudflare/workers-chat-demo), but theoretically it may work for games too.
Player state can be stored in a decentralized key-value store that Cloudflare manages. They absorb all the DDoS and handle replication between edge nodes. You don't see any of that. https://www.cloudflare.com/products/workers-kv/
Or maybe it was their Durable Objects product... I forget how that's different from Workers KV: https://developers.cloudflare.com/workers/learning/using-dur...
Then each game client uses a worker to access that KV, and Cloudflare will route that worker to its nearest edge node and retrieve the state from there (which was previously replicated a moment ago, internal to Cloudflare's infrastructure).
https://workers.cloudflare.com/
I don't know if this would result in acceptable latency, but it could help with DDOS at least.
Sprocket
What are some alternatives?
miniflare - 🔥 Fully-local simulator for Cloudflare Workers. For the latest version, see https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare.
quilkin - Quilkin is a non-transparent UDP proxy specifically designed for use with large scale multiplayer dedicated game server deployments, to ensure security, access control, telemetry data, metrics and more.
krustlet - Kubernetes Rust Kubelet
e2core - Server for sandboxed third-party plugins, powered by WebAssembly
wrangler-legacy - 🤠 Home to Wrangler v1 (deprecated)
awesome-paas - A curated list of PaaS, developer platforms, Self hosted PaaS, Cloud IDEs and ADNs.
flow-pipeline - A set of tools and examples to run a flow-pipeline (sFlow, NetFlow)
amfora - A fancy terminal browser for the Gemini protocol.
deno - A modern runtime for JavaScript and TypeScript.