So the next step is
- to create the unit manager boot init
- create a test application that initializes the unit manager
- write a code that accesses the data in the unit manager (static entities only)
- create the channel management
- extend the initialization with message processors
- write test code for the communication
After this point I can go on towards dynamic type management: generated code for the type management data, syntax module, dynamic entity creation, dynamic binary loading. This is the environment of a single-threaded, plugin-based application. This is the complex console application level. The sytax module will allow me to make the first useful tool: the one that generates C sources from type declarations (header files with constants, and sources for boot time initialization).
The nex big stuff will be the GUI, to have a full, still single threaded desktop application. The target is the starter version of the DustLab. Resource stuff... this will be a hard one. I must separate the GUI text content and the structure; formatted text and resource templates apply here. I should also extend the type management with proper message templates here (logging, message sending, routing).
Then comes the persistence layer with some real connector (database, ldap, filesystem). This is the beginning of the real entity invocation - when the entity instance lifecycle separates from the application. I should move the DustLab content into a persistence service layer for both editing and instance resolution.
Next is the parallel processing - both for the same application (event management, separate GUI and process threads, parallel processors) and connectors (when multiple applications connect to each other, server/client or p2p models). Big stuff is the lock, clone-on-write mechanisms, transaction management.
Impressive... :-D