Skip to content

tracking: droppedFields write-observability is asymmetric across the Virtual Data Engine RPC boundary (update best-effort, create surfaces) #3476

Description

@os-zhuang

Split out from #3455 / #3468 (design note #3413).

The asymmetry

droppedFields (write-observability for LEGALLY-stripped fields — readonly #2948 / readonlyWhen #3042 / #3043 create ingress) reaches the caller via two different mechanisms with different reach:

#3468 extended both channels to the bulk paths, so bulk now inherits the exact same asymmetry the single-write path already had (acknowledged in #3413).

Why it matters

A cross-process deployment (Virtual Data Engine) gets reliable drop reporting on creates but silent success on updates — the very silent-success class #3407 set out to remove, re-appearing only at the process seam.

Options to consider

  1. Carry onFieldsDropped events across the RPC envelope (add a droppedFields field to the engine's remote write-response contract) so the remote engine reports its own strips.
  2. Recompute the update strip at the protocol layer via a before/after diff (as the create side does) — costs an extra read to know the pre-write values.
  3. Document the boundary as a known limitation and leave update-side remote reporting best-effort.

No runtime bug today (single-process/ObjectQL deployments are fully covered); this tracks closing the remote gap.

Refs: #3455, #3468, #3413, #3407.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions