True upserts in an append-only world: ReplacingMergeTree and FINAL.
You don't need slow SQL UPDATE statements to maintain current state in ClickHouse. insert (OrderStateModel (order_id = 101, status = " shipped ", version = 2)) # Query guaranteed latest state: latest =...
