NetsBlox / services

Official NetsBlox services
0 stars 0 forks source link

Synchronization Service? #69

Open brollb opened 3 years ago

brollb commented 3 years ago

What if we had a service for synchronizing various data structures? We could support types like registers, counters, CRDTS, etc.

Maybe these should be added to CloudVariables? We could add categories to make sure these aren't overwhelming for beginners

brollb commented 3 years ago

Here is a relevant resource:

gsteinLTU commented 3 years ago

I think the simpler CRDTs would work well as NetsBlox implementations rather than a separate service since they're so simple.

A service (probably with a library/extension for the client) using something like https://github.com/automerge/automerge would probably be useful as well for demonstrating the use of CRDTs for lists/strings in more complex use cases.

gsteinLTU commented 3 years ago

Here's an example I made of the G-Counter: https://editor.netsblox.org/?action=present&Username=gstein&ProjectName=G-Counter&

It requires messaging while collaborating, but that's changeable.

brollb commented 3 years ago

Both approaches could be useful. Implemented as a service would make it easy to import and share (beginners could use them w/ minimal overhead. CRDTs could send update/set-state messages when their value changes.). However, it would be a black box which limits how much the students can "probe" into the concept/implementation. Implementing it in blocks would likely be a little more complicated but would be great for opening up and exploring the implementation.

I also like that they seem like they would be a natural addition to the cloud variables service and could facilitate a conversation on locks vs CRDTs, etc.