Sitecore Pipelines


Pipelines are one of Sitecore’s essential integration concepts. They are used to extend existing functionality, and to allow custom functionality to be extended in the future. They also provide a level of documentation and transparency by virtue of how they are configured.

What is a Pipeline?

A pipeline is basically a method whose flow is defined using XML.

A pipeline consists of a sequence of processors. A processor is a .NET class that implements a method. When a pipeline is invoked, the processors are run in order.

Pipelines are used to control most of Sitecore’s functionality. Processes ranging from authentication to request handling to publishing to indexing are all controlled through pipelines.

Pipelines are defined in Web.config and in Sitecore patch files.

The following is an example of the pipeline that is responsible for rendering a page:

<renderLayout>
  <processor type="Sitecore.Pipelines.PreprocessRequest.CheckIgnoreFlag, Sitecore.Kernel" />
  <processor type="Sitecore.Pipelines.RenderLayout.PageHandlers, Sitecore.Kernel" />
  <processor type="Sitecore.Pipelines.RenderLayout.SecurityCheck, Sitecore.Kernel" />
  <processor type="Sitecore.Pipelines.RenderLayout.InsertRenderings, Sitecore.Kernel" />
  <processor type="Sitecore.Pipelines.RenderLayout.PageExtenders, Sitecore.Kernel" />
  <processor type="Sitecore.Pipelines.RenderLayout.ExpandMasterPages, Sitecore.Kernel" />
  <processor type="Sitecore.Pipelines.RenderLayout.BuildTree, Sitecore.Kernel" />
  <processor type="Sitecore.Pipelines.RenderLayout.InsertSystemControls, Sitecore.Kernel" />
  <processor type="Sitecore.Pipelines.RenderLayout.InsertUnusedControls, Sitecore.Kernel" />
  <processor type="Sitecore.Pipelines.RenderLayout.BrowserCaching, Sitecore.Kernel" />
</renderLayout>

Sitecore’s Pipelines

Sitecore includes more than 140 pipelines. Each new version of Sitecore adds pipelines. Installing Sitecore modules also results in more pipelines being added.

The following is a list of some of the more commonly used pipelines. It is unlikely you will ever call any of these pipelines directly, but it is not unusual to extend these pipelines.

Pipeline nameDefined inArgs typeDescription
initializeWeb.configPipelineArgsRuns when the IIS application pool is started. Processors handle initialization tasks that need to run once.
httpRequestBeginWeb.configHttpRequestArgsHandles the HTTP request. This includes tasks such as resolving the context item, device and presentation settings.
insertRenderingsWeb.configInsertRenderingsArgsDetermines the presentation components to include when rendering an item.
renderFieldWeb.configRenderFieldArgsRuns when the FieldRenderer is used to render a field value.

Sitecore 8 Pipelines

Sitecore 8 introduced a large number of additional pipelines. See links below for more information about these pipelines: