Currently, WritingEntityRepository accepts a single EntityRevision, containing the new entity data and the base revision ID. Make it accept an Entity and an EntityRevision instead, where the Entity contains the new entity data and the EntityRevision contains the base revision data + ID. This will allow us to introduce a new layer which diffs the old against the new data and removes parts that didn’t change and therefore don’t need to be sent over the wire.
This also resolves the conceptual smell that the current input EntityRevision doesn’t really represent any particular revision at all – its revision ID does not match its entity data.