Real world modeling
Client-Server vs Peer-to-peer
Peer-to-peer systems can be deployed without any concerns but also need a lot of tedious work to adapt it to the production-level services. Yorkie provides the SDK, Server, and Database to eliminate the tedious work can be operational and can use the services just out-of-box. Yorkie will take care of the collaborative features while you focus on your direct services.
Builtin JSON-like document
Some open source CRDT libraries only support basic datatypes. It's very difficult to express complex models of the application only with basic datatypes. Yorkie provides a general purpose JSON-like documents to unleash the limitation.
For more integrations with other libraries: Live demo
Support MongoDB Query
Yorkie snapshots are stored as plain documents in MongoDB collections. You can use enormous MongoDB queries and features to browse stored documents and supervise data warehouse easily with MongoDB management services.
Lamport timestamp vs Vector clock
CRDT uses a logical clock to sync documents between each client. Vector clock needs clocks per every client and it leads to large space for snapshots. Yorkie uses Lamport timestamp to keep smaller document sizes. Lamport clocks cannot distinguish the concurrency and causality relations but in the server-client architecture, we only need to determine the total order within the system - therefore, there are no problems with implementing the real world application.
CRDT is better than OT
CRDT(Conflict-free Replicated Data Type) is formed solid and clean architecture, much better than OT(Operational Transformation). Complexity leads to a higher probability of bugs on operations. It has been known that some OT algorithms are more complex than CRDT and cannot satisfy the convergence after publication. which would be difficult to use. Yorkie uses the well-proven CRDT algorithm to achieve reliable services for customers.
TLS with optional client authentication
Yorkie uses TLS between clients and server communication. You can connect custom authentication systems with Yorkie via authentication hooks.