Explanation¶
This section dives into the concepts and design decisions behind NUClear. Rather than telling you how to use a specific feature, these pages explain why things work the way they do.
If you've already followed the tutorials and know how to use NUClear, this is where you come to deepen your understanding — to see the bigger picture and appreciate the trade-offs that shaped the framework.
Pages¶
| Page | What It Covers |
|---|---|
| Architecture | Why NUClear exists, the problems it solves, and the event-driven reactive pattern at its core |
| Threading Model | How tasks are scheduled across thread pools, priority queues, and group constraints |
| Scheduler | Internal design of the lock-free scheduler: pools, queues, groups, idle tasks, and shutdown |
| Lifecycle | The three phases of a NUClear system: initialisation, execution, and shutdown |
| The DSL System | How on<>().then() works from top to bottom — template metaprogramming in action |
| Message Flow | What happens when you emit data, from call site to reaction execution |
| NUClearNet | The peer-to-peer networking mesh that connects NUClear instances |
| Serialization | How data is converted for network transmission |