Architecture Overview
![devlake-architecture](https://user-images.githubusercontent.com/14050754/143292041-a4839bf1-ca46-462d-96da-2381c8aa0fed.png)
Stack (from low to high)
- config
- logger
- models
- plugins
- services
- api / cli
Rules
- Higher layer calls lower layer, not the other way around
- Whenever lower layer neeeds something from higher layer, a interface should be introduced for decoupling
- Components should be initialized in a low to high order during bootstraping