Skip to content
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

Updated _posts/features/0100-01-03-distributed.md #8

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions _posts/features/0100-01-03-distributed.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ categories:
published: true
---

Substance is being designed as a distributed system. Every peer can act as a server or client. Nodes can either run locally on your computer or somwhere on the web. It's the same piece of software, except that public nodes may use more sophisticated backends as they most likely need to scale.
Substance is totally being designed as a distributed system. Every peer can act as a server or client. Nodes can either run locally on your computer or somwhere on the web. It's the same piece of software, except that public nodes may use more sophisticated backends as they most likely need to scale.

With Substance our goal is the provision of a modern technology stack, enabling collaborative document composition in realtime between multiple peers. The system is split into separate modules, which talk to each other using message passing. So our System is all about exchanging and manipulating digital documents over the network. To ensure all parties can communicate fluently, we defined a common vocabulary that is spoken by all parties, the [Substance Document Protocol](/modules/document.html).

Expand Down Expand Up @@ -75,4 +75,4 @@ Let's walk through a simple example:
1. Well, now `John` has a fresh document.
1. Some time later `Paul` joins the party. He also connects to that server.
1. `Paul` opens the document just created by `John`. The server is aware that there's an active document session so John just joins that session and as a response gets the current state of the document.
1. `Paul` just adds an image at the bottom of the document then, which triggers an operation `node:insert` broadcasted to all active clients, in our case `John`. Under the hood the document session is aware of clients participating in a session and sends distributes messages accordingly. For every session a document instance is kept in memory, which gets transformed as operations come in.
1. `Paul` just adds an image at the bottom of the document then, which triggers an operation `node:insert` broadcasted to all active clients, in our case `John`. Under the hood the document session is aware of clients participating in a session and sends distributes messages accordingly. For every session a document instance is kept in memory, which gets transformed as operations come in.