Multithreaded and scalable for small embedded systems as well as large scale environments.
Running checks every second is no longer a problem and enables real-time monitoring capabilities.
+Checks, notifications and event handlers [do not block Icinga 2](#differences-1x-2-async-event-execution)
+in its operation. Same goes for performance data writers and the external command pipe, or any
+file writers on disk (`statusdata`).
Unlike Icinga 1.x the [daemon reload](#differences-1x-2-real-reload) happens asynchronously.
A child daemon validates the new configuration, the parent process is still doing checks, replicating cluster events, triggering alert notifications, etc. If the configuration validation is ok, all remaining events are synchronized and the child process continues as normal.
The DB IDO configuration dump and status/historical event updates also runs asynchronously in a queue not blocking the core anymore. The configuration validation itself runs in paralell allowing fast verification checks.
STOP_OBSESSING_OVER_SVC
STOP_OBSESSING_OVER_SVC_CHECKS
+### <a id="differences-1x-2-async-event-execution"></a> Asynchronous Event Execution
+
+Unlike Icinga 1.x, Icinga 2 does not block when it waits for a check command
+being executed. Similar when a notification or event handler is triggered - they
+run asynchronously in their own thread.
+
+Writing performance data files or status data and log files doesn't block either.
+Last but not least the external command pipe runs asynchronously and accepts
+multiple connections at once.
+
### <a id="differences-1x-2-checks"></a> Checks
#### <a id="differences-1x-2-check-output"></a> Check Output