- PUT / Create new row — contains the value for each non-null column
- PATCH / Update existing row — contains the ID, and value of each changed column
- DELETE / Delete existing row — contains the ID
- A per-client incrementing operation ID is included with each operation that can be used to deduplicate operations, and/or the backend can implement the operations in an idempotent way (e.g. ignore DELETE on a row that is already deleted).
- Deletes always win: If one client deletes a row, any future updates to that row are ignored. The row may be created again with the same ID.
- For multiple concurrent updates, the last update (as received by the server) to each individual field wins.
- If you require different behavior to “last write wins”, implement custom conflict resolution.