[]
The Data Manager–Based Collaboration Model defines how table state managed by the SpreadJS DataManager participates in real-time collaboration.
The DataManager is a front-end data modeling and transport layer. It allows applications to:
Define tables
Configure data sources
Establish relationships between tables
Define views
Coordinate local or remote data operations
The DataManager manages structured table state. It does not provide user interaction directly.
Currently, Data Manager–based collaboration is supported only through TableSheet.
Collaboration synchronizes only state that is:
Persisted within the DataManager runtime
Serializable
Deterministically replayable across clients
State delegated to external systems is not synchronized.
The following table-level state is synchronized:
Table definitions
Column definitions and metadata
View definitions
Relationships
Hierarchy configuration
Table options and layout configuration
Serializable data source configuration
Any modification to the above structural state participates in collaboration.
Dataset mutations are synchronized only when the table uses the data option with JSON-based in-memory data.
Supported format:
data (JSON objects)
When using this mode, the following dataset mutations participate in collaboration:
Record value updates
Record insertion and removal
Column structural changes
Hierarchy structural adjustments
Row pin and unpin state
In this mode, dataset state is fully managed by the DataManager and included in collaboration snapshots.
The following scenarios do not participate in dataset synchronization:
When using dataSourceOption.remote with URL-based transport options (including autoSync: true):
Table editing is supported.
DataManager sends changes to the remote service.
Dataset mutations are not synchronized by the collaboration system.
Data consistency is delegated to the backend service.
Configuration state remains synchronized if it is serializable.
When using function-based handlers such as:
GC.Data.RemoteReadHandler
GC.Data.RemoteChangeHandlerThe configuration cannot be serialized.
The table does not participate in collaboration.
When dataset content is initialized from CSV or XML formats:
Configuration state is synchronized.
Dataset mutations are not synchronized.
Presence indicators (such as selections or cursors) are not supported under this model.
Undo is supported for synchronized state.
To maintain consistency, the local undo stack is cleared when remote operations are received.
Large dataset state may be stored separately using fragments to optimize snapshot size.