I think the approach of mutating each property independently is an excellent approach and I'm glad to see it working at scale. It's just like regular CRUD except that instead of mutating the whole resource, you just mutate one property at a time - And if two users edit the same atomic property at the exact same time, it doesn't really matter who's edit arrives last because there is no absolute right answer so long as both users can observe the same outcome.
I also did some work in that area several years ago which I refined over time into a sample app and a set of libraries: https://github.com/SocketCluster/ag-crud-sample#ag-crud-samp...