Igniters, C++ doesn't have reflection/introspection. For this reason we have to map user structs/classes to their marshal/unmarshal handlers (functions) somehow.
Various approaches for this are available: 1) Predefined map [type ID -> marshal/unmarshal functions] which is configured at runtime before Grid is started. 2) Provide serializers in runtime. E.g. the following will set specific serializers on cache projection: ICache* cache = grid.cache(KeySerializer* k, ValSerialzier* v). I think we should start with p.1 as it is flexible and will not require users to change their existing types. The drawback is that user will have to write marshalling logic by hand. But we can introduce some code-generation facility later (e.g. like Gigaspaces does this). Thoughts and ideas are welcomed. Vladimir.