Serialization for the new micro service landscape
Presented by: Leonardo de Moura Rocha Lima
Serialization is often overlooked when developing backend systems, and this wasn’t (and still isn’t) a problem inside a monolith. But with the developing scene moving towards micro services, serialization becomes really important - how to serialize your data? What aspects do you need to consider? How to choose the best format and tools for your use case? Come learn about the aspects and tools to compare and select the right serialization option for your micro services!
Serialization is used by any system that wants to talk another system, even itself. Different languages have different built-in options and tools. Java, for example, has the Serializable interface and ObjectOutputStream and many other libraries for serialization. Some play well with the native system, some are meant to be cross-platform compatible.
In this session, we’ll present how to choose the right serialization option by exploring a new framework to help developers test their use cases and make the right choice for them. This covers five major areas:
- size of the final byte array;
- speed of serialization/deserialization;
- native support by non-developer tools;
- compatibility with other systems and languages; and
- ease of development.
We need to use concrete examples so our serialization is complete, and for that we’ll compare major serialization options in the Java/JVM ecosystem like Java bult-in serialization, JSON, XML, Google Protobuf and Apache Avro, together with specific libraries for these formats, and apply them to a well known and simple use case. This comparison uses a framework to generate tests and numbers so that you’re able to make an informed decision.
After this talk, we expect that the audience will be able to make their own comparisons to choose what’s best for their use cases, because there’s no one-size-fits-all solution when talking about serialization!