The documentation says:
the Kotlin SDK does not provide live objects and collections that update simultaneously with underlying data. Instead, the Kotlin SDK works exclusively with frozen objects that can be passed between threads safely
OK, so thread safe!
But from my usage experience, this creates two major co-existing problems that far out weigh the supposed benefit of “thread safe”.
- The objects don’t get live updates.
- The objects can not be modified.
(Well, you can modify the object in a write block, which get saved to the DB, but then your modifications are not reflected in your existing object)
The two co-existing problems are quite contradictory in logic:
-
Since the objects are frozen (without any updates from the DB) why the DB maintains that they be “managed”? Why not let them be as ordinary Kotlin objects that can be freely modified?
-
Since the objects are managed by the DB and can not be modified by the user, then why not give live updates?
The usage of these objects becomes quite awkward, and the issue of “thread-safe” is far less of any concern for me.