You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey @Strikeskids, all great questions. I'll admit we haven't thought very deeply on this topic, so would be interested in getting your thoughts on what you'd like to see in a solution here.
On the client <> server communication part: right now the model is just to update clients and servers at the same time whenever there are breaking changes to the API. If you want to update client and server separately, the only thing I can think of is defining a more generic userState, for example using union types. Something like this:
On the persistence side: we plan on implementing a migration system. The first step towards this is implementing a snapshotting feature, which would serialize/compact the replay log into a snapshot file using a user defined serialization function (InternalState -> byte array). Once we have this place, we would add a feature which lets users define migration functions which read the serialized byte array and deserialize it into the upgraded InternalState representation. This way, impl.ts doesn't need to be aware of any migrations and always has the most recent InternalState definition.
I'm new to the hathora project and didn't see any documentation talking about the upgrade process for your HathoraConfig types. Did I miss it?
I'm wondering about questions like:
The coordinator process described in the architecture docs indicates that clients should be able to seamlessly transition between backends.
There's a similar issue with the transaction log of all method calls being used for persistence.
The text was updated successfully, but these errors were encountered: