Get rid of file separation and make it possible to serialize complex objects.
Provide simple interface for async file loading.
Proposed changes:
Add VECTOR and PATCH mapping archetypes in order to cover all use cases with StandardLayoutMapping: any object should be mappable even if field projection is not possible.
Rework serialization to object loading from StandardLayoutMapping: no more bundles or other special file formats. Everything should be covered by mapping after VECTOR and PATCH addition.
Split JobDispatcher jobs into foreground and background, then add ability to limit thread usage by background threads. Otherwise resource loading would be able to capture all threads and pause the application.
Create separate ResourceRegistry library for resource discovery and easier resource loading. The main principles are:
All possible resource types should be registered.
Every resource object consists of {ObjectTypeName}.{UniqueId}.{bin/yaml}. Is {ObjectTypeName} part of {UniqueId}? To be decided.
Other resources files can be registered as external binaries.
Resource discovery can be run automatically or loaded from binary discovery cache.
There is an API for easy loading by type+id pair and easy iteration of all objects of requested type.
Goals:
Proposed changes:
VECTOR
andPATCH
mapping archetypes in order to cover all use cases withStandardLayoutMapping
: any object should be mappable even if field projection is not possible.StandardLayoutMapping
: no more bundles or other special file formats. Everything should be covered by mapping afterVECTOR
andPATCH
addition.JobDispatcher
jobs into foreground and background, then add ability to limit thread usage by background threads. Otherwise resource loading would be able to capture all threads and pause the application.ResourceRegistry
library for resource discovery and easier resource loading. The main principles are:{ObjectTypeName}.{UniqueId}.{bin/yaml}
. Is{ObjectTypeName}
part of{UniqueId}
? To be decided.