vaadin / collaboration-engine

The simplest way to build real-time collaboration into web apps
https://vaadin.com/collaboration
Other
3 stars 1 forks source link

Make Collaboration Engine serializable #51

Open Legioth opened 3 years ago

Legioth commented 3 years ago

Various parts of Collaboration Engine are currently implemented in a way that will prevent serializing UI components that use Collaboration Engine. This is in contrast with the regular Vaadin convention to keep internals serializable so that the application developer can choose to take the effort to also make application code serializable so that sessions can be serialized and thus moved between nodes in a cluster (the other reason for serializability is to store sessions over a server restart, but this is not fully always applicable since Vaadin doesn't take the effort to ensure that a newer version of Vaadin can deserialize state from an older version).

This was a conscious trade-off from the beginning to help us get going. It was further supported by the fact that Collaboration Engine could otherwise also not be used in a cluster. Now when we're about to remove the limitations that have prevented using Collaboration Engine in a cluster, it would also be relevant to remove the limitation with serialization.