Monolithic Architecture
A monolithic architecture is a singular, large computing network with one code base that couples all of the business concerns together.
This is the opposite of Microservices.
Does not scale
Monolithic architecture does not scale. Functionalities become difficult to implement without scaling the entire application.
Resource
How does this apply to robotics?
I’ve been thinking about this because you get the best performance when everything is tightly coupled and on the same process.
But the issue is simply that it does not scale well. So certain components should be monolithic, those where real-time performance is critical.
But if you expect the complexity of the system grows, especially for something like robotics (perception, planning, control), you can make changes without affecting the entire system.
- Think about it, if they are all in 1 process, each being a thread, imagine when one of them crashes, it’s really hard to debug the issue.
For tightly integrated systems where simplicity and performance are paramount, a monolithic approach may be more appropriate.