[ https://issues.apache.org/jira/browse/IGNITE-14316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17612616#comment-17612616 ]
Stanislav Lukyanov commented on IGNITE-14316: --------------------------------------------- The only purpose of this in AI 3 architecture is the client-side serialization of complex (multi-level) objects into a flat structure. Essentially, the user needs an easy way to insert a nested object. The object will necessarily be rendered to a `byte[]`, and AI won't really have any introspection into it. It seems like something Ignite should have as little to do with as possible. # The format and the serializer should be some industry standard, available in virtually any language. Avro immediately comes to mind. # Mapping complex user objects to a simpler format DB understands is the definition of what ORM does. ## When I care about the schema, it's natural to use an actual ORM. Need to investigate what's the latest and greatest in ORMs in terms of serialization support. ## When all I want is to do a simple schemaless put with complex objects like `put(new Key(a, b, c), new Val(new NestedVal(d, e), f))`, I probably don't want an ORM. In this case, the user code has to specify a way to serialize the objects. I guess there might be a default one (Avro? Java serialization?) but it feels like a slippery road. > Binary object API for arbitrary user objects. > --------------------------------------------- > > Key: IGNITE-14316 > URL: https://issues.apache.org/jira/browse/IGNITE-14316 > Project: Ignite > Issue Type: Improvement > Reporter: Andrey Mashenkov > Priority: Major > Labels: iep-54, ignite-3 > Original Estimate: 240h > Remaining Estimate: 240h > > Let's create BinaryObject (BO) interface and a builder interface for it > assuming > - BO is a self-described object. Similar to Ignite-2 one with a compact > footer. > - BO is unmanaged. SchemaManager doesn't care about its schema at all. > - BO can be deserialized to user class with a specified deserializer. > - BO has a flat structure, cyclic links are not allowed. However, one can > restore links on reserialization. > - BO must not have any dependencies on Ignite internals. > - Ignite should provide some base implementation for BO and builder. -- This message was sent by Atlassian Jira (v8.20.10#820010)