where {application} is the application name and
{shard} is the shard to which the batch is to be added. Shard names are text strings and are not predefined: a shard is started when the first batch is added to it.
The optional Overwrite parameter (case-insensitive) indicates whether or not the batch should replace existing field values. The default is
true, which means any field that already has a value for the corresponding object replaces the existing value. If multiple batches are added to the same shard with
Overwrite=true, the last value added when the shard is merged takes precedence. If
Overwrite is set to
false, values in the corresponding batch are only additive: they never replace existing field values when the shard is merged.
As shown, messages from multiple tables can be mixed in the same batch. The _table property identifies the table that the object will be inserted to, updated in, or deleted from. An object is added the first time fields are assigned to its
_ID. Assigning an SV scalar field for an existing object replaces its current value. MV scalar and link field values are added in
add groups. An object is deleted by giving its
_ID value and setting the system field
_deleted to
true.
When an object is added, the _ID field can be omitted, in which case Doradus assigns a unique ID. The ID is a base 64-encoded 120-bit value that is generated in a way to ensure uniqueness even in a multi-node cluster. However, automatic IDs remove the idempotency of updates: if the same object is added twice with the
_ID field assigned, it will be inserted twice with different ID values.