Live data from Hacker News

Reflect – Multiplayer web app framework with game-style synchronization

rocicorp.dev

41–50 of 159 posts

Re: Reflect – Multiplayer web app framework with game-style synchronization

#41
post #2

Hey hacker news! I'm one of the people behind this, happy to answer any questions.

What does this mean for Replicache development, is the client-side codebase mostly shared and can expect continued updates, or more likely to replace the primary focus for you?

The clients are almost entirely shared. We will continue to develop Replicache.

https://x.com/replicache/status/1714684061589877235?s=20

Re: Reflect – Multiplayer web app framework with game-style synchronization

#42
post #39
post #2

Hey hacker news! I'm one of the people behind this, happy to answer any questions.

Congrats! I've been watching this space for a while, having built a couple multiplayer sync systems in the past in private codebases, including a "redux-pubsub" library with rebasing and server canonicity that is (IIUC?) TCR-like. There's a lot to like about this model, and I find the linked article quite clear - thank you for writing and releasing this! 1. You wrote "For example, schema validation and migrations jus…

1. I hope to write about this soon! We've developed something we really like for Reflect.

2. This is what I want to work on next. I am similarly intrigued by the Prosemirror model. It seems like a good match.

Re: Reflect – Multiplayer web app framework with game-style synchronization

#43
post #2

Hey hacker news! I'm one of the people behind this, happy to answer any questions.

Aaron is humble, so I'll do it for him! He created Greasemonkey and has had a hand in several groundbreaking browser innovations over the years.

:)

Re: Reflect – Multiplayer web app framework with game-style synchronization

#44

If you want true concurrency, in an elegant format, with a lot of the common problems abstracted away -- use Erlang. They solved this 30 years ago.

I don’t think Erlang solves this problem: multiplayer editing of data structures while preserving user intent.

Specifically does BEAM build in a data structure for preserving user intent while multiple users type/delete/apply styling in the same text field?

Re: Reflect – Multiplayer web app framework with game-style synchronization

#45

Earlier quoted context omitted.

What does this mean for Replicache development, is the client-side codebase mostly shared and can expect continued updates, or more likely to replace the primary focus for you?

The clients are almost entirely shared. We will continue to develop Replicache. https://x.com/replicache/status/1714684061589877235?s=20

Thank you! Really like Replicache though only used it for hobby projects so far, and enjoyed also the backend side of it (minimal and entirely in supabase stored functions, probably not prod ready). Hope the new approach is a great success for you!

Re: Reflect – Multiplayer web app framework with game-style synchronization

#46

Any idea how this compares to Supabase's Realtime & Presence libraries? https://supabase.com/docs/guides/realtime

We'll post something soon comparing all of the options (in our opinion). But as I understand it: - Supabase Broadcast: one client sends every other client a one-time message - Supabase Presence: one client tells all other clients that its own state has changed. This is similar to above, except that server keeps track of all the last-state for each client so that new members of the channel can get up to date. - Supaba…

You forgot to compare them :)

Supabase’s real-time stuff lets various parts of your system send messages about changes to each other. But when it comes to realtime editing, that’s the easy part!

Reflect is a much higher level abstraction that handles the hard parts:

- maintaining a cache on the device (this alone is annoying hard to get right)

- queuing updates to send to the server reliably

- handling conflicts between different users while preserving the intent of each user, by rebasing histories locally, and choosing the winner on the server

Re: Reflect – Multiplayer web app framework with game-style synchronization

#47

Very allagmatic. Instead of storing & transferring structures transfer operations. Iw as wondering what kind of checkingpoint or snapshotting there might be. Such that one doesn't have to "replay-the-world" if something goes awry (localstack persistence did/l (does?) this, storing state by just recording/replaying API calls). It sort of seems like having a globally accepted state is enough & makes sense, but it still…

Reflect is indeed built on immutable data structures internally, and it’s part of what makes it performant.

Re: Reflect – Multiplayer web app framework with game-style synchronization

#49

If you want true concurrency, in an elegant format, with a lot of the common problems abstracted away -- use Erlang. They solved this 30 years ago.

Erlang is a programming language. Reflect is an implementation of a hosted service that helps user's build realtime collaborative interfaces.

Reflect could be built using Erlang. Erlang could not be used to replace what it does.

Re: Reflect – Multiplayer web app framework with game-style synchronization

#50

I need a simple explanation like i am 6 years old because i have a mind of a 6 years old.

This is a hosted service that makes it much easier for you add multiplayer real-time collaboration (as seen in Google Docs and Figma) to your own web application.
Post reply on HN