4 ms·
Very necessary. A few questions: - How big can records be? Are they stored as a single object in the persistence layer or using something like materialized p
by tristanz 11y ago
Very necessary. A few questions:
- How big can records be? Are they stored as a single object in the persistence layer or using something like materialized paths. The firebase data model is one huge JSON structure, so this looks different.
- How are conflicts handled? Last writer on server wins or last writer anywhere? Do you ensure eventual consistency of all the clients even when you apply optimistic writes on the client?
- Can data be larger than the cache size? How is cache eviction handled?
- wolframhempel 11y agoThanks - Records have no hard size limit - but are limited to the maximum size of your cache entry or database document. The tcp connection can send a single record update over multiple packets. - Records already have a version that's incremented with every change and also persisted as part of the record's meta-data. Currently deepstream uses a simple first-wins strategy and subsequent updates for the same version number get rejected. However configurable merge strategies are in planning as part of a "record-options" setting. - Currently data has to be explicitly deleted from the cache.