calm-sunset-28996
07/07/2021, 12:58 PMbig-carpet-38439
07/07/2021, 2:03 PMcalm-sunset-28996
07/07/2021, 6:25 PMbig-carpet-38439
07/07/2021, 7:53 PMDatasetPropertiesDelta
{
addEntries: [ { key: "myNewKey", value: "myNewValue" } ],
removeEntriesWithKey: [ "key1", "key2" ]
}
However, the downside with this approach is that it's not easily generalizable. For each aspect that needs partial updates, you need to define a new "delta" model. Further, you have to hand-write logic to merge a "delta" received over Kafka or via Rest with the existing aspect.
This basically comes down to putting a read-merge-write loop on the server, instead of the client side. If you have many clients that need to do this, it can make sense. But comes with high cost on the server maintainers.
A more desirable solution would be a true patch model wherein we support field-level operations to be specified, for example:
DatasetProperties Patch
{
properties: { $add: [{ "key": "value" }] }
}
But this is much tricker to achieve in a generalizable way... and Rest.li / PDL has no built-in help š (To be fair, nor does Protobuf or Avro)calm-sunset-28996
07/07/2021, 9:08 PMbig-carpet-38439
07/07/2021, 9:14 PMaloof-ram-72401
10/23/2022, 2:14 AMcuddly-dinner-641
10/24/2022, 2:22 PMwitty-butcher-82399
10/24/2022, 4:00 PMcuddly-dinner-641
10/24/2022, 7:43 PMcuddly-dinner-641
10/26/2022, 4:50 PMbig-carpet-38439
10/26/2022, 4:52 PMbig-carpet-38439
10/26/2022, 4:52 PMbig-carpet-38439
10/26/2022, 4:53 PMbig-carpet-38439
10/26/2022, 4:55 PMcuddly-dinner-641
10/26/2022, 4:56 PMbig-carpet-38439
10/26/2022, 4:56 PMbig-carpet-38439
10/26/2022, 4:57 PMcuddly-dinner-641
10/26/2022, 4:57 PMbig-carpet-38439
10/26/2022, 4:58 PMbig-carpet-38439
10/26/2022, 4:58 PMcuddly-dinner-641
10/26/2022, 5:00 PMcuddly-dinner-641
10/26/2022, 5:01 PMcuddly-dinner-641
10/26/2022, 5:06 PMbig-carpet-38439
10/26/2022, 5:07 PMbig-carpet-38439
10/26/2022, 5:07 PMbig-carpet-38439
10/26/2022, 5:08 PMaverage-nail-72662
05/11/2023, 1:15 PM