Marshalling: Data-Oriented Serialization
summary
After 30 years of Java Serialization the proposal replaces object-scraping with language-level constructor-based marshalling and matching deconstructors as schemas, making structure explicit (types, names, order) and decoupling wire formats. Prototype integrates with Jackson in under 100 lines and the PoC runtime is ≈1,000 Java lines. It drops serialVersionUID/readObject/writeObject magic, disallows automatic cycles, supports constructors and static factories (enums/singletons via factories), and lets authors opt in to private access for safe, versioned migration.
AI-written summary · about
chapters (10)
- 0:00History and context
- 2:56Grievances with serialization
- 7:32Complexity and evolution
- 12:20Leveraging record patterns
- 17:49Structural flaws
- 19:58Proposed architecture
- 28:47Decoupling concerns
- 34:14Simplicity in design
- 37:39Key takeaways and future steps
- 43:47Questions and answers
related talks
51mSerialization: A New Hope
23mSerialization 2.0
53mWhy We Hate Java Serialization And What We're Doing About It
42mSerialization and Object Graph Communication
45mSerialization & Object Graph Communication
41mHigh-Secure Java Serialization
34mWhen Records Meet Serialization A Happy Tale
41mJava Serialisation: A Modern Fairytale
