SyncAPI
TopThe Sync API allows clients to collaboratively read and write JSON data to a shared resource.
SyncDocument()
Bidirectional streaming RPC for real-time document synchronization
GetDocumentJSON()
Simple RPC to fetch current document state as JSON
GetDocumentJSONRequest
Field | Type | Description |
database_id | string | |
document_id | string |
GetDocumentJSONResponse
Field | Type | Description |
error | Status | Details of any error that occurred on the call. |
json | string | The current JSON snapshot of the document |
SyncDocumentRequest
Field | Type | Description |
sync_start | SyncDocumentStart | Initial sync configuration, must be sent as first message. |
update | SyncDocumentUpdate | Updates to apply to the remote document. |
sync_state | SyncState | The sync state of the local document |
SyncDocumentResponse
Field | Type | Description |
status | Status | Details of any error that occurred on the call. |
state_vector | bytes | The state vector of the Volt (remote) document. Only present in the initial response. |
update | SyncDocumentUpdate | Updates to apply to client (local) document. |
sync_state | SyncState | The sync state of the Volt (remote) document |
SyncDocumentStart
Field | Type | Description |
database_id | string | The id of the database that contains the document. |
document_id | string | The id of the document to sync. |
state_vector | bytes | The clients state vector. The Volt will respond with updates that should be applied to the local document. |
read_only | bool | Set to true to only receive updates from other clients. |
SyncDocumentUpdate
Field | Type | Description |
chunk | bytes | |
complete | bool |
SyncState
Name | Number | Description |
SYNC_STATE_UNKNOWN | 0 | |
SYNC_STATE_SYNCING | 1 | |
SYNC_STATE_DONE | 2 | |
SYNC_STATE_UPDATE | 3 |
Scalar Value Types
.proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
double | double | double | float | float64 | double | float | Float | |
float | float | float | float | float32 | float | float | Float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |