# Braid: Working Group for Interoperable State Synchronization
Braid is an open working group creating algorithms, applications, tools, and standards for interoperable state synchronization. [Join us!](#work-with-us-)
Our goal is to be able to **read & write distributed state as easily as a local variable**, collaboratively across all the networked computing systems we use.
We meet every two weeks in [open meetings](#work-with-us-), where we discuss application and system needs, identify commonalities, and find consensus on shared protocols.
## Braid-HTTP: Synchronization for HTTP
**Braid-HTTP** is an extension to HTTP that generalizes it from a state *transfer* to a state *synchronization* protocol.
It adds these features to HTTP:
1. *Versioning* to HTTP resources
2. *Subscriptions* to GET requests
3. *Patches* to Range Requests
4. *Merge-Types* to specify OT or CRDT behavior
Together, these features enable a web resource to synchronize automatically across multiple clients, servers and proxies, and support arbitrary simultaneous edits by multiple writers, under arbitrary network delays and partitions, while guaranteeing consistency using an [OT](https://en.wikipedia.org/wiki/Operational_transformation), [CRDT](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type), or other algorithm.
Web applications can use the Braid extensions to provide collaborative editing, a serverless offline mode, and peer-to-peer networking for any HTTP resource. Standard libraries make it easy to add these features to existing web applications and browsers.
[Read more in the IETF internet draft](https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-braid-http).
## Work with us!
We are an open group! We have general meetings every two weeks at [this Zoom link](https://us02web.zoom.us/j/6459283736?pwd=cW1OcnlZQndXS3pKQ1U3K01NRHJZQT09). Come on by! We demo new progress, deliberate our standards, and discuss approaches to build the distributed web.
We also schedule in-between meetings periodically, on special topics.
| Date | Time | Webpage | Topic |
| ------ | ---- | ------ | --- |
| Jun 29, 2026 | 10:00am Pacific | [meeting-138](/meeting-138) | |
| Jun 15, 2026 | 10:00am Pacific | [meeting-137](/meeting-137) | |
| Jun 1, 2026 | 10:00am Pacific | [meeting-136](/meeting-136) | |
| May 18, 2026 | 10:00am Pacific | [meeting-135](/meeting-135) | |
| May 4, 2026 | 10:00am Pacific | [meeting-134](/meeting-134) | Hedgedoc, Content & Repr-Type |
| Apr 20, 2026 | 10:00am Pacific | [meeting-133](/meeting-133) | Webindex |
| Apr 6, 2026 | 10:00am Pacific | [meeting-132](/meeting-132) | Pagination, Multi-Merge-Type |
| Mar 23, 2026 | 10:00am Pacific | [meeting-131](/meeting-131) | GNFS, IETF, Versions |
| Mar 9, 2026 | 10:00am Pacific | [meeting-130](/meeting-130) | Plans, Cache-Quirks, Web Index |
| Feb 23, 2026 | 10:00am Pacific | [meeting-129](/meeting-129) | Imgs, Cursors, RangeQs ☕️🔥 |
| Feb 9, 2026 | 11:00am Pacific | [meeting-128](/meeting-128) | Web Index |
| Jan 26, 2026 | 1:00pm Pacific | [meeting-127](/meeting-127) | Braid in Rust, P2P Basel |
| Jan 12, 2026 | 1:00pm Pacific | [meeting-126](/meeting-126) | NFS Progress, Context |
| Dec 29, 2025 | 1:00pm Pacific | [meeting-125](/meeting-125) | Fugue, Braid-Blob |
| Dec 26, 2025 | 12:00pm Pacific | [meeting-124.2](/meeting-124.2) | mentorship |
| Dec 22, 2025 | 12:00pm Pacific | [meeting-124.1](/meeting-124.1) | mentorship |
| Dec 15, 2025 | 1:00pm Pacific | [meeting-124](/meeting-124) | NFS Progress |
| Dec 12, 2025 | 12:00pm Pacific | [meeting-123.2](/meeting-123.2) | mentorship |
| Dec 5, 2025 | 12:05pm Pacific | [meeting-123.1](/meeting-123.1) | mentorship |
| Dec 1, 2025 | 1:00pm Pacific | [meeting-123](/meeting-123) | Invisible Tino, Blobs, Mako |
| Nov 17, 2025 | 1:00pm Pacific | [meeting-122](/meeting-122) | IETF, Syncables, gNFS, Blob |
| Nov 3, 2025 | 1:00pm Pacific | [meeting-121](/meeting-121) | RINA, Binary Braid-HTTP |
| Oct 20, 2025 | 1:00pm Pacific | [meeting-120](/meeting-120) | Binary, 3-Way Merge, Mako |
| Oct 6, 2025 | 1:00pm Pacific | [meeting-119](/meeting-119) | DWeb Seminar, Binary, NFS |
| Sep 22, 2025 | 1:00pm Pacific | [meeting-118](/meeting-118) | Bubbles, Diffsync, Legit |
| Sep 1, 2025 | 1:00pm Pacific | [meeting-117](/meeting-117) | Ethersync |
| Aug 18, 2025 | 1:00pm Pacific | [meeting-116](/meeting-116) | Roadmap, Authority, Reverse |
| Aug 4, 2025 | 1:00pm Pacific | [meeting-115](/meeting-115) | Reverse HTTP, Linked Editing |
| Jul 21, 2025 | 1:00pm Pacific | [meeting-114](/meeting-114) | Discont CRDT |
| Jul 7, 2025 | 1:00pm Pacific | [meeting-113](/meeting-113) | Braidfs, Signed Updates |
| Jun 23, 2025 | 1:00pm Pacific | [meeting-112](/meeting-112) | Ordering, Compression |
| Jun 9, 2025 | 1:00pm Pacific | [meeting-111](/meeting-111) | Time Machines |
| May 26, 2025 | 1:00pm Pacific | skip | |
| May 12, 2025 | 1:00pm Pacific | [meeting-110](/meeting-110) | Reconciliation |
| Apr 28, 2025 | 1:00pm Pacific | [meeting-109](/meeting-109) | Reconciliation |
| Apr 14, 2025 | 1:00pm Pacific | [meeting-108](/meeting-108) | Invisible College |
| Mar 31, 2025 | 1:00pm Pacific | [meeting-107](/meeting-107) | Solid, Web of State |
| Mar 17, 2025 | 1:00pm Pacific | [meeting-106](/meeting-106) | Braidfs, OT |
| Mar 3, 2025 | 1:00pm Pacific | [meeting-105](/meeting-105) | Multiplexing, Braidfs |
| Feb 17, 2025 | 1:00pm Pacific | [meeting-104](/meeting-104) | Canceled |
| Feb 3, 2025 | 1:00pm Pacific | [meeting-103](/meeting-103) | Social |
| Jan 20, 2025 | 1:00pm Pacific | [meeting-102](/meeting-102) | Multiplexing, Copy-Paste |
| Jan 6, 2025 | 1:00pm Pacific | [meeting-101](/meeting-101) | Bilateral Session FSM |
| Dec 23, 2024 | | skip | Christmas |
| Dec 9, 2024 | 1:00pm Pacific | [meeting-100](/meeting-100) | Linked Data |
| Nov 25, 2024 | 1:00pm Pacific | [meeting-99](/meeting-99) | Web-of-Opinions, Diff Vis |
| Nov 11, 2024 | 1:00pm Pacific | [meeting-98](/meeting-98) | Braid Libraries, Plan98 |
| Oct 28, 2024 | 1:00pm Pacific | [meeting-97](/meeting-97) | IETF Drafts, Versions |
| Oct 14, 2024 | 1:00pm Pacific | [meeting-96](/meeting-96) | Operations, Envelopes |
| Sep 30, 2024 | 1:00pm Pacific | [meeting-95](/meeting-95) | Time Collapse, Table Ops |
| Sep 16, 2024 | 1:00pm Pacific | [meeting-94](/meeting-94) | Coordination |
| Sep 2, 2024 | 1:00pm Pacific | [meeting-93](/meeting-93) | Reed Append-only Logs |
| Aug 19, 2024 | 1:00pm Pacific | [meeting-92](/meeting-92) | Dwebcamp |
| Aug 5, 2024 | 1:30pm Pacific | [meeting-91](/meeting-91) | Braidfs, SUBSCRIBE |
| Jul 22, 2024 | 6:00pm Pacific | [meeting-90](/meeting-90) | Braid-Proxy, Workshop |
| Jul 8, 2024 | 1:00pm Pacific | [meeting-89](/meeting-89) | Braidfs, Multiresponse, ... |
| Jun 24, 2024 | 1:00pm Pacific | [meeting-88](/meeting-88) | Dom Diffs |
| Jun 10, 2024 | 1:00pm Pacific | [meeting-87](/meeting-87) | Status Updates |
| Jun 6, 2024 | 8:00am Pacific | [meeting-86.1](/meeting-86.1) | Stalwart + Braid |
| May 27, 2024 | 1:00pm Pacific | [meeting-86](/meeting-86) | Braided Money, Braid-Text |
| May 13, 2024 | 1:00pm Pacific | [meeting-85](/meeting-85) | WWW, Mail, Solid, Unicode |
| Apr 29, 2024 | 1:00pm Pacific | [meeting-84](/meeting-84) | Programming, Messaging |
| Apr 15, 2024 | 1:00pm Pacific | [meeting-83](/meeting-83) | Simpleton, Linked Tables |
| Apr 1, 2024 | 1:00pm Pacific | [meeting-82](/meeting-82) | Simpleton, Plan98 |
| Mar 18, 2024 | 6:00pm Pacific | [meeting-81](/meeting-81) | Throttling, Cross-Links |
| Mar 4, 2024 | 6:00pm Pacific | [meeting-80](/meeting-80) | Read-Tracking, Identity |
| Feb 23, 2024 | 12:00pm Pacific | [meeting-79.1](/meeting-79.1) | In-Person! |
| Feb 19, 2024 | 6:00pm Pacific | [meeting-79](/meeting-79) | Transactions, Op VC, Ident. |
| Feb 12, 2024 | 11:00am Pacific | [meeting-78.1](/meeting-78.1) | Set Reconciliation |
| Feb 5, 2024 | 6:00pm Pacific | [meeting-78](/meeting-78) | Operational Version Control |
| Jan 22, 2024 | 6:00pm Pacific | [meeting-77](/meeting-77) | Table Diff, TP0 in OT |
| Jan 8, 2024 | 6:00pm Pacific | [meeting-76](/meeting-76) | Simpleton, Sagas, Identity |
| Dec 25, 2023 | | skip | Christmas |
| Dec 11, 2023 | 6:00pm Pacific | [meeting-75](/meeting-75) | Braid-chrome, SSB, Plan98 |
| Nov 27, 2023 | 9:00am Pacific | [meeting-74](/meeting-74) | OpenSIPS, IETF ideas |
| Nov 13, 2023 | 9:00am Pacific | [meeting-73](/meeting-73) | Reconciliation, IETF trip |
| Oct 30, 2023 | 9:00am Pacific | [meeting-72](/meeting-72) | IETF, Braid-Chrome |
| Oct 16, 2023 | 9:00am Pacific | [meeting-71](/meeting-71) | Status Lines in HTTP |
| Oct 2, 2023 | 9:00am Pacific | [meeting-70](/meeting-70) | Braid-Chrome, Schemas, ... |
| Sep 18, 2023 | 9:00am Pacific | [meeting-69](/meeting-69) | Sqlite CRDT 2, Standards |
| Sep 4, 2023 | 9:00am Pacific | [meeting-68](/meeting-68) | Sqlite CRDT 1, Standards |
| Aug 21, 2023 | 5:00pm Pacific | [meeting-67](/meeting-67) | Braid-HTTP-03 Publishing |
| Aug 7, 2023 | 5:00pm Pacific | [meeting-66](/meeting-66) | Sqlite CRDTs, IETF |
| Jul 24, 2023 | 5:00pm Pacific | [meeting-65](/meeting-65) | Antimatter, IRTF|
| Jul 10, 2023 | 5:00pm Pacific | [meeting-64](/meeting-64) | TinySSB, Kit, Organization |
| Jun 27, 2023 | 5:00pm Pacific | [meeting-63](/meeting-63) | DWeb Wrapup |
| Jun 12, 2023 | 5:00pm Pacific | [meeting-62](/meeting-62) | Org, Portals, Schemas, ... |
| May 30, 2023 | 5:00pm Pacific | [meeting-61](/meeting-61) | Replaces, Schemas, ... |
| May 15, 2023 | 5:00pm Pacific | [meeting-60](/meeting-60) | Time Machines, CRDTs, ... |
| May 1, 2023 | 5:00pm Pacific | [meeting-59](/meeting-59) | DT, Antimatter, OT w/ CP |
| Apr 17, 2023 | 5:00pm Pacific | [meeting-58](/meeting-58) | n2 Parents |
| Apr 3, 2023 | 4:00pm Pacific | [meeting-57](/meeting-57) | TinyBFT, DT Merge Alg |
| Mar 20, 2023 | 4:00pm Pacific | [meeting-56](/meeting-56) | Sequence CRDT, Dbl Spend |
| Mar 6, 2023 | 4:00pm Pacific | [meeting-55](/meeting-55) | Syncing Computation |
| Feb 20, 2023 | 4:00pm Pacific | [meeting-54](/meeting-54) | General |
| Feb 9, 2023 | 4:00pm Pacific | [meeting-53.1](/meeting-53.1) | CRDT Podcast |
| Feb 6, 2023 | 4:00pm Pacific | [meeting-53](/meeting-53) | General |
| Jan 23, 2023 | 3:00pm Pacific | [meeting-52](/meeting-52) | General |
| Jan 9, 2023 | 3:00pm Pacific | [meeting-51](/meeting-51) | General |
| Dec 26, 2022 | | skip | Christmas |
| Dec 12, 2022 | 5:00pm Pacific | [meeting-50](/meeting-50) | General |
| Nov 28, 2022 | 5:00pm Pacific | [meeting-49](/meeting-49) | General |
| Nov 14, 2022 | 5:00pm Pacific | [meeting-48](/meeting-48) | General |
| Oct 31, 2022 | 5:00pm Pacific | [meeting-47](/meeting-47) | General |
| Oct 17, 2022 | 5:00pm Pacific | [meeting-46](/meeting-46) | General |
| Oct 3, 2022 | 5:00pm Pacific | [meeting-45](/meeting-45) | General |
| Sep 22, 2022 | 5:00pm Pacific | [meeting-44.1](/meeting-44.1) | Organization |
| Sep 19, 2022 | 5:00pm Pacific | [meeting-44](/meeting-44) | General |
| Sep 7, 2022 | 5:00pm Pacific | [meeting-43.1](/meeting-43.1) | P2P Email |
| Sep 5, 2022 | 5:00pm Pacific | [meeting-43](/meeting-43) | General |
| Aug 22, 2022 | 5:00pm Pacific | [meeting-42](/meeting-42) | General |
| Aug 8, 2022 | 5:00pm Pacific | [meeting-41](/meeting-41) | General |
| Aug 3, 2022 | 10:00pm Pacific | [meeting-40.1](/meeting-40.1) | Tably's OT+CRDT |
| Jul 25, 2022 | 5:00pm Pacific | [meeting-40](/meeting-40) | General |
| Jul 11, 2022 | 5:00pm Pacific | [meeting-39](/meeting-39) | General |
| Jun 27, 2022 | 5:00pm Pacific | [meeting-38](/meeting-38) | General |
| Jun 13, 2022 | 5:00pm Pacific | [meeting-37](/meeting-37) | General |
| May 30, 2022 | 5:00pm Pacific | [meeting-36](/meeting-36) | General |
| May 16, 2022 | 5:00pm Pacific | [meeting-35](/meeting-35) | General |
| May 2, 2022 | 5:00pm Pacific | [meeting-34](/meeting-34) | Hyper Hyper Space |
| Apr 18, 2022 | 5:00pm Pacific | [meeting-33](/meeting-33) | Redwood & Statebus |
| Apr 4, 2022 | 4:00pm Pacific | [meeting-32](/meeting-32) | Kernels |
| Mar 21, 2022 | 4:00pm Pacific | [meeting-31](/meeting-31) | General |
| Mar 7, 2022 | 4:00pm Pacific | [meeting-30](/meeting-30) | General |
| Feb 21, 2022 | 4:00pm Pacific | [meeting-29](/meeting-29) | General |
| Feb 7, 2022 | 4:00pm Pacific | [meeting-28](/meeting-28) | Kernels |
| Jan 24, 2022 | 4:00pm Pacific | [meeting-27](/meeting-27) | General |
| Jan 10, 2022 | 4:00pm Pacific | [meeting-26](/meeting-26) | General |
| Dec 13, 2021 | 4:00pm Pacific | [meeting-25](/meeting-25) | General |
| Nov 29, 2021 | 4:00pm Pacific | [meeting-24](/meeting-24) | General |
| Nov 15, 2021 | 4:00pm Pacific | [meeting-23](/meeting-23) | Hackathon Demos |
| Nov 13, 2021 | All day | [meeting-22.1](/meeting-22.1) | Hackathon |
| Nov 8, 2021 | 4:00pm Pacific | [meeting-22.2](/meeting-22.2) | Diamond-Types |
| Nov 1, 2021 | 4:00pm Pacific | [meeting-22](/meeting-22) | General |
| Oct 25, 2021 | 4:00pm Pacific | [meeting-21.1](/meeting-21.1) | Building Usage |
| Oct 18, 2021 | 4:00pm Pacific | [meeting-21](/meeting-21) | General |
| Oct 6, 2021 | 6:00pm Pacific | [meeting-20.1](/meeting-20.1) | Diamond-Types |
| Oct 4, 2021 | 4:00pm Pacific | [meeting-20](/meeting-20) | General |
| Sept 20, 2021 | 4:00pm Pacific | [meeting-19](/meeting-19) | General |
| Sept 6, 2021 | 4:00pm Pacific | [meeting-18](/meeting-18) | General |
| Aug 23, 2021 | 4:00pm Pacific | [meeting-17](/meeting-17) | General |
| Aug 19, 2021 | 3:00pm Pacific | [meeting-16.1](/meeting-16.1) | P2P Chat over Tor |
| Aug 9, 2021 | 4:00pm Pacific | [meeting-16](/meeting-16) | General |
| July 26, 2021 | 3:00pm Pacific | [meeting-15](/meeting-15) | General |
| July 12, 2021 | 3:00pm Pacific | [meeting-14](/meeting-14) | General |
| June 28, 2021 | 3:00pm Pacific | [meeting-13](/meeting-13) | General |
| June 14, 2021 | 3:00pm Pacific | [meeting-12](/meeting-12) | General |
| June 7, 2021 | 4:00pm Pacific | [meeting-11.1](/meeting-11.1) | Workshop |
| June 1, 2021 | 3:00pm Pacific | [meeting-11](/meeting-11) | General |
| May 17, 2021 | 3:00pm Pacific | [meeting-10](/meeting-10) | General |
| May 6, 2021 | 3:00pm Pacific | [meeting-9.1](/meeting-9.1) | Libraries |
| May 3, 2021 | 3:00pm Pacific | [meeting-9](/meeting-9) | General |
| Apr 26, 2021 | 3:00pm Pacific | [meeting-8.1](/meeting-8.1) | Specifications |
| Apr 19, 2021 | 3:00pm Pacific | [meeting-8](/meeting-8) | General |
| Apr 16, 2021 | 4:00pm Pacific | [meeting-7.1](/meeting-7.1) | Redwood Chat |
| Apr 5, 2021 | 3:00pm Pacific | [meeting-7](/meeting-7) | General |
| Apr 2, 2021 | 3:00pm Pacific | [meeting-6.1](/meeting-6.1) | Code on Braid |
| Mar 22, 2021 | 2:00pm Pacific | [meeting-6](/meeting-6) | General |
| Mar 19, 2021 | 2:00pm Pacific | [meeting-5.1](/meeting-5.5) | Protocol Code |
| Mar 16, 2021 | 2:00pm Pacific | [meeting-5](/meeting-5) | Homepage Design |
| Mar 8, 2021 | 2:00pm Pacific | [meeting-4](/meeting-4) | General |
| Feb 22, 2021 | 2:00pm Pacific | [meeting-3](/meeting-3) | General |
| Feb 8, 2021 | 2:00pm Pacific | [meeting-2](/meeting-2) | General |
| Jan 25, 2021 | 2:00pm Pacific | [meeting-1](/meeting-1) | General |
|||
### How we make standards
We work openly in the [IETF](https://ietf.org). We discuss the specification on the [Braid](https://groups.google.com/forum/#!forum/braid-http) and [HTTP](https://lists.w3.org/Archives/Public/ietf-http-wg/) mailing lists.
- Edit the [Braid Spec on Github](https://github.com/braid-org/braid-spec).
- If you see an issue, [file it on Github](https://github.com/braid-org/braid-spec/issues).
- If you have an idea, write it into the spec and issue a [Pull Request](https://github.com/braid-org/braid-spec/pulls).
- Pull requests are accepted when they reach [rough consensus](https://datatracker.ietf.org/doc/html/rfc7282).
To keep up with standards discussions, subscribe to the [mailing list](https://groups.google.com/forum/#!forum/braid-http) and click
on [github](https://github.com/braid-org/braid-spec). For assistance, email [Michael Toomim](mailto:toomim@gmail.com). He would love to help!
### Also
- Join the [mailing list](https://groups.google.com/forum/#!forum/braid-http)
- Have side conversations on [Discord](https://discord.gg/nvPQN7FgDX).
- See our [current work](/work).
- See the current list of [contributors](/contributors).
- Improve this website by [editing](/editing) it.
## Implementations
Protocol implementations:
- [braid-http](https://www.npmjs.com/package/braid-http)
- [braid-protocol](https://github.com/josephg/braid-protocol)
- [wai-braid](https://github.com/braid-org/wai-braid)
Browser Extension:
- [Braid-Chrome](https://github.com/braid-org/braid-chrome)
Filesystem Sync & Proxy
- [Braidfs](https://github.com/braid-org/braidfs) `alpha`
State Abstractions libraries:
- [Braid-Text](https://www.npmjs.com/package/braid-text) (for text)
- [Redwood](https://github.com/brynbellomy/redwood)
- [Statebus](https://stateb.us)
- [Statecraft](https://github.com/josephg/statecraft)
Algorithms:
- [Diamond Types](https://github.com/josephg/diamond-types): World's fastest text CRDT
- [Antimatter](/antimatter): World's first history-pruning text CRDT
- [Sync9](/sync9): a CRDT+OT for text & JSON
- [SyncX](https://github.com/pkulchenko/syncX): a Sync9
- [Shelf](/algorithms/shelf): A remarkably simple, and useful JSON CRDT
- [Diffsync](https://github.com/invisible-college/diffsync): a CRDT+OT using recursive 3-way merge
- [Tiny-Merge](https://github.com/siliconjungle/tiny-merge): A well-designed library of practical CRDTs
- [CR-SQLite](https://github.com/vlcn-io/cr-sqlite): Transforms SQLite into a very useful CRDT
- [Portals](/meeting-62/portals): Copy, Move, and Wrap operations for any OT or CRDT
- [Simpleton](/meeting-76/simpleton-demo): Super simple and fast light client for any CRDT
Compatibilties:
- [Automerge Compatibility](/automerge)
- [ShareDB and Sync9 Compatibility](https://braid.org/demo/interoperate)
Applications:
- [This website](https://braid.org/editing)
- [Peery View](https://peeryview.org/about): P2P reputation system on Braid
- [Quiet](https://tryquiet.org/): P2P chat with tor
- [Ethersync](/apps/ethersync)
- [DT Wiki](https://dt.braid.org)
- [Braidmail](https://mail.braid.org)
## The Braid Protocol
The Braid Protocol allows multiple synchronization algorithms to interoperate over a common network protocol, which any synchronizer's network messages can be translated into.
Read the latest Braid specification
Even though today's synchronizers use different protocols, their network messages convey the same types of information: *versions* in time, *locations* in space, and *patches* to regions of space across spans of time. The composition of any set of patches forms a [mathematical structure](https://en.wikipedia.org/wiki/Braid_group) called a *braid*—the forks, mergers, and re-orderings of space over time. The Braid Protocol is a standard message format that any synchronizer can use to express changes over time and resolve to a consistent state.
Explore the data model with these interactive demos:
Interact with a braid Generate random braids
If you have an interest in synchronization over HTTP, please review the protocol spec and provide comments on the [mailing list](https://groups.google.com/forum/#!forum/braid-http).
## Protocol Roadmap
The current Braid specification extends HTTP with two dimensions of synchronization:
- Level 0: Today's HTTP
- Level 1: Subscriptions with Push Updates
- Level 2: P2P Consistency (Patches, Versions, Merges)
We are also prototyping, but have not yet standardized, these P2P features:
- Level 3: P2P Semantics (Methods, Validation, Acknowledgement)
- Level 4: P2P Transport (URLs, Naming, Cryptography, Routing)
For an explanation, see Mike's talk in [meeting-2](/meeting-2).
We welcome collaborations in all four areas!
## Braid allows Synchronizers to Interoperate
[Rafie Walker](https://github.com/slickytail) has used the Braid protocol to synchronize an OT system with a CRDT. A [babelfish](https://en.wikipedia.org/wiki/List_of_races_and_species_in_The_Hitchhiker%27s_Guide_to_the_Galaxy#Babel_fish) sits in the websocket, and converts ShareDB's network messages into Braid messages, and vice versa.
A Babelfish between ShareDB and Sync9
[Click here](/demo/interoperate) to try it live!
Thanks to [Seph Gentle](https://josephg.com) for insight into ShareDB's protocol!
This babelfish is mostly complete, but does not handle cases where the two synchronizers resolve conflicts with a different sort order. For that, they will need to implement the same *merge type* (see the protocol spec).
We have also begun designing a [babelfish for Automerge](/automerge), a CRDT system. If you have a synchronizer, please work with us to develop a Braid compatibility layer for it.
## Why "Braid"?
1. Braid adds historical time travel to the web, just like the [videogame Braid](https://en.wikipedia.org/wiki/Braid_(video_game%29).
2. It *braids* each strand of the World-Wide Web, making the Web thicker, stronger, and more robust, with multiple bidirectional persistent connections amongst multiple peers.
3. We *braid* together multiple perspectives on synchronization and decentralized technology in web standards.
4. A *braid* is a [mathematical structure](https://en.wikipedia.org/wiki/Braid_group) and a [computer data structure](https://braid.org/demo/interact#the-braid-model) that contains the information needed for a synchronizer—a partial order of time, and a partial order of space. By representing edits as patches in a braid, we enable multiple synchronizers to interoperate.
- See also *[Life is a Braid in Spacetime](https://nautil.us/life-is-a-braid-in-spacetime-234729/)*
