4 # High Level Design {#dali-hld}
6 ## Components {#dali-components}
8 + **DALi Core:** Event handling, Scene Graph, Rendering, Resource Management
9 + **DALi Adaptor:** Threading Model, Integration with the main loop.
10 + **DALi Platform Abstraction:** Resource loading & decoding in multiple threads (part of dali-adaptor)
11 + **DALi Toolkit:** Reusable UI Controls, Effects & Scripting Support
13 ![ ](../assets/img/architecture.png)
14 ![ ](architecture.png)
16 ## Main, Update & Render Threads {#dali-threads}
18 DALi uses a multithreaded architecture in order to provide the best performance and scalability.
20 + **Event Thread:** The main thread in which application code and event handling runs.
21 + **Update Thread:** Updates the nodes on the scene as well as running animations & constraints
22 + **Render Thread:** OpenGL drawing, texture and geometry uploading etc.
23 + **Resource Threads:** Loads images and decodes into bitmaps etc.
25 ![ ](../assets/img/dali-threads.png)
26 ![ ](dali-threads.png)