Document store for building collaborative editing applications

Yorkie does

  • 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.

  • Easy integration

    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

  • Manageable warehouse

    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.

  • Size matters

    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.

  • Proofed reliability

    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.

  • Secure

    TLS with optional client authentication

    Yorkie uses TLS between clients and server communication. You can connect custom authentication systems with Yorkie via authentication hooks.

Need help?

If you have any questions along the way, please don’t hesitate to ask us in our Slack channel. You can sign up for our Slack here.