Well Defined MVC
Asgard is currently a collection of SystemComponents. Each SystemComponent has a thread. The threads communicate via Messages through a special SystemComponent called the Message Router.
There two major problems with this design:
1. Whenever we need to add a new logical grouping of code, we must add a new SystemComponent and thus a new thread. Already there are 5 SystemComponents, and thus 5 threads.
2. Communication between different SystemComponents requires Messages. Messages are an indirect, asynchronous method of doing the typical function call. Messages as a form of Thread synchronization are not wrong, but using Messages as function calls seems very much wrong (in retrospect).
We need to implement an MVC which limits the number of threads while enabling direct function calls between different logic groupings of code. By doing this we hope to:
1. Increase code readability, scalability and maintainability.
2. Reduce complexity of memory management.
3. Significantly reduce likelihood of race conditions both now and in the future.
Blueprint information
- Status:
- Complete
- Approver:
- Russ Adams
- Priority:
- Undefined
- Drafter:
- Russ Adams
- Direction:
- Approved
- Assignee:
- Russ Adams
- Definition:
- Approved
- Series goal:
- Accepted for thegrandmap
- Implementation:
- Implemented
- Milestone target:
- 0.3.7
- Started by
- Russ Adams
- Completed by
- Russ Adams