What is Racer?
masterRacer is a realtime model synchronization engine for Node.js. It uses ShareDB and Operational Transformation (OT) to allow multiple users to interact with the same data in realtime with sophisticated conflict resolution.
Key capabilities include:
- Realtime updates: Model methods propagate changes between browser clients and Node servers automatically.
- Realtime query subscriptions: Clients can subscribe to specific documents or query sets (currently supporting arbitrary Mongo queries).
- Conflict resolution: Uses JSON Operational Transformation to ensure eventual consistency across clients.
- Immediate interaction & Offline support: Model methods take effect locally immediately, allowing for offline work that automatically syncs upon reconnection.
- Unified interface: The same model interface works on both the server (for initial rendering) and the client (for interaction).
- Persistent storage: Uses ShareDB to journal operations and persist documents, primarily via MongoDB.