Execution happens when pipelines and the modules they contain are evaluated.
When pipelines in Statiq are executed, a special object called the engine is responsible for coordinating activity. While an engine can be instantiated directly, it's most typically created by using a bootstrapper.
Events let you hook into various stages of the generation process and can be helpful when you need to implement cross-cutting behavior at runtime or when you need to modify the behavior of existing pipelines. Statiq has a global event mechanism that makes it easy to subscribe to and handle events.
Statiq uses an IO abstraction layer designed to provide flexibility and consistency when dealing with files, directories, and path information.