Event loop — handles async operations.
Phases: 1. timers 2. pending callbacks 3. poll 4. check 5. close