Skip to content
This repository has been archived by the owner on Apr 29, 2020. It is now read-only.

feat(json-crdt): Adds explanation about JSON-CRDT #35 #36

Merged
merged 6 commits into from
May 26, 2018

Conversation

gpestana
Copy link
Collaborator

This PR is WIP

Opening this PR for starting to get feedback on form and content asap.

@gpestana
Copy link
Collaborator Author

@pgte what do you think about keeping this explanation under /research folder? I noticed you had your explanation if delta-CRDTs in an issue, should we use the same for this or commit that material to the repo?


An operation is a tuple of the form

```
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe using a screenshot of the paper where the tuple is represented would be easier to read. Since this is really informal, I believe we can just do it and loosely reference it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, screenshot plus ref at the end is fine.


### Applying Operations

## Document editing API
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thinking of having a high level pseudo-code representation of the API here. Is it relevant?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is relevant, it will give a concrete sense of the semantics provided to the user.


## Document editing API

## Concurrent editing examples
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a tricky part to add, but I really found helpful the way a similar section to this is in the paper. So I thought we could add those examples too. Would it be lame to just copy paste the examples? 😅

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can add a markdown quote withe that text extracted from the paper.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will do, let's see how it works out!


## Concurrent editing examples

## Appendix
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this or should we just reference to wikipedia/lamport clocks paper? This appendix is feeling a bit out of scope now.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can keep this informal, with direct links where needed, and no need for an appending IMO.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed

@pgte
Copy link
Contributor

pgte commented Apr 30, 2018

@gpestana yes, you can PR into the /research folder, it's a easier workflow if you want to debate things.

@gpestana
Copy link
Collaborator Author

@pgte I think this is shaping up now. Any comments/feedback on form and content?

Copy link
Contributor

@pgte pgte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great work, thank you for explaining this @gpestana!

the cursor

```
cursor(<MapT(doc), listT("shopping")>, id1)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the value of id1 here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • replace id1 to something that makes sense given the context

The `DELETE` and `ASSIGN` operations are destructive mutations. In the operation
based JSON CRDT as presented in the paper, a deleted node is
not removed from the document but instead it is represented by a node in which
it `deps` set is empty. A document node which has its `deps` set empty is
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: should read “its deps set”.

Copy link
Collaborator Author

@gpestana gpestana May 25, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • “its deps set”.

@pgte
Copy link
Contributor

pgte commented May 25, 2018

@gpestana merge at will! :)

@gpestana
Copy link
Collaborator Author

Awesome, thanks! I will fix those things and review it again and merge the PR.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants