Currently, WildFly uses JBoss Marshalling to marshal user objects (session attributes, SFSB instances, etc.) for the purposes of replication and persistence.
Protostream (developed by the Infinispan team) offers several advantages over JBoss Marshalling.
- Lower memory footprint (marshalling schemas are built during compilation time)
- Marshalling is granular, thus avoiding lots of large buffer copying
- Faster marshalling - as it does not rely on reflection
- Produces generally smaller replication payloads (see https://docs.google.com/spreadsheets/d/1f6FlXqxX7dYm44naHZfqLc5TjqlmscIdGyyfmt5I3f4/edit?usp=sharing )
- Resolves security concerns due to JBM's reliance on reflection and Java serialization inherently permitting arbitrary execution of rogue code
- JBoss Marshalling is effectively in maintenance mode
WFLY-13077 Support protostream-based marshalling of user objects