mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-09-04 01:37:05 +00:00
32 lines
1.5 KiB
Markdown
32 lines
1.5 KiB
Markdown
# Designed architecture
|
|
|
|
## How does this plug-in synchronise.
|
|
|
|

|
|
|
|
1. When notes are created or modified, Obsidian raises some events. Self-hosted LiveSync catches these events and reflects changes into Local PouchDB.
|
|
2. PouchDB automatically or manually replicates changes to remote CouchDB.
|
|
3. Another device is watching remote CouchDB's changes, so retrieve new changes.
|
|
4. Self-hosted LiveSync reflects replicated changeset into Obsidian's vault.
|
|
|
|
Note: The figure is drawn as single-directional, between two devices for demonstration purposes. Everything actually occurs bi-directionally between many devices at the same time.
|
|
|
|
## Current technical references
|
|
|
|
- [Database Data Structures](datastructure.md) describes current Metadata and
|
|
Chunk shapes, identifier handling, deletion, and raw remote representations.
|
|
- [Replicator architecture](design_docs/replicator_architecture.md) describes
|
|
provider composition, active Replicator publication, retirement, and P2P
|
|
ownership.
|
|
- [Conflict resolution and revision provenance](specs_conflict_resolution.md)
|
|
defines the current revision-tree and file-provenance rules.
|
|
- [Chunk Retrieval and Waiting](design_docs/chunk_retrieval_and_waiting.md)
|
|
defines missing-Chunk arrival and quiescence handling.
|
|
- [Data Compression](specs_data_compression.md) and [Garbage Collection
|
|
V3](specs_garbage_collection.md) describe their respective storage and
|
|
maintenance contracts.
|
|
|
|
## Techniques to keep bandwidth consumption low.
|
|
|
|

|