jBPM serialization
We have seen that the engine features, with enabled persistence, state saving of session, process, task, and variable data to the database, and contextually, relevant object state data are marshalled and then, persisted on entity saving and unmarshaled on entity loading so as to make possible the preservation of the engine execution state in the long term, across system restarts. Here, the term marshalling is used because the jBPM serialization layer utilizes the Google Protobuf framework, a protocol, which, in the first instance, was used for RPC. Let us have a look at how the default jBPM serialization works and, later on, how we can manage to hook our serialization mechanism into jBPM.
Marshalling
CommandService
(Chapter 6, Core Architecture) and the related interceptors are invoked to persist entities in a transactional way; the internal object marshalling phase takes place inside the transaction.
During the saving (or update) of the session, for example, its instance...