View source  
  - services:
 - 
 -   # PURGE.LOGGER
 -   #
 -   # Provides logging services to purge and its submodules, via a single channel.
 -   purge.logger:
 -     class: Drupal\purge\Logger\LoggerService
 -     arguments: ['@config.factory', '@purge.logger.parts_factory']
 -     public: true
 -     tags:
 -       - { name: needs_destruction }
 -   purge.logger.parts_factory:
 -     class: Drupal\purge\Logger\LoggerChannelPartFactory
 -     arguments: ['@logger.channel.purge']
 -     public: false
 -   logger.channel.purge:
 -     parent: logger.channel_base
 -     arguments: ['purge']
 -     public: false
 - 
 -   # PURGE.QUEUERS
 -   #
 -   # Manages services tagged 'purge_queuer' by exposing them in end-user
 -   # interfaces and allowing users to disable/enable them.
 -   purge.queuers:
 -     class: Drupal\purge\Plugin\Purge\Queuer\QueuersService
 -     arguments: ['@plugin.manager.purge.queuer', '@config.factory']
 -     public: true
 -   plugin.manager.purge.queuer:
 -     class: Drupal\purge\Plugin\Purge\Queuer\PluginManager
 -     parent: default_plugin_manager
 -     public: false
 - 
 -   # PURGE.INVALIDATION.FACTORY
 -   #
 -   # The invalidation object factory, generates 'purge instruction' value objects
 -   # on demand. Invalidations have state and flow freely between queue and
 -   # purgers, but can also be instantiated through the factory and get fed to the
 -   # purger straight away.
 -   purge.invalidation.factory:
 -     class: Drupal\purge\Plugin\Purge\Invalidation\InvalidationsService
 -     arguments: ['@plugin.manager.purge.invalidation', '@purge.purgers']
 -     public: true
 -   plugin.manager.purge.invalidation:
 -     class: Drupal\purge\Plugin\Purge\Invalidation\PluginManager
 -     parent: default_plugin_manager
 -     public: false
 - 
 -   # PURGE.QUEUE:
 -   #
 -   # The queue service which stores, claims, releases and accepts invalidation
 -   # objects returning from 'purge.purgers'.
 -   purge.queue:
 -     class: Drupal\purge\Plugin\Purge\Queue\QueueService
 -     arguments: ['@plugin.manager.purge.queue', '@purge.logger', '@config.factory', '@purge.queue.txbuffer',  '@purge.queue.stats', '@purge.invalidation.factory', '@purge.purgers']
 -     public: true
 -     tags:
 -       - { name: needs_destruction }
 -   purge.queue.txbuffer:
 -     public: true
 -     class: Drupal\purge\Plugin\Purge\Queue\TxBuffer
 -   purge.queue.stats:
 -     class: Drupal\purge\Plugin\Purge\Queue\StatsTracker
 -     arguments: ['@state']
 -     public: true
 -     tags:
 -       - { name: needs_destruction }
 -   plugin.manager.purge.queue:
 -     class: Drupal\purge\Plugin\Purge\Queue\PluginManager
 -     parent: default_plugin_manager
 -     public: false
 - 
 -   # PURGE.DIAGNOSTICS:
 -   #
 -   # The diagnostics service which monitors and warns for problematic situations
 -   # that can occur during purging. When it detects severe issues, it will
 -   # prevent all purges in the first place.
 -   purge.diagnostics:
 -     class: Drupal\purge\Plugin\Purge\DiagnosticCheck\DiagnosticsService
 -     arguments: ['@plugin.manager.purge.diagnostics']
 -     public: true
 -     calls:
 -     - [setContainer, ['@service_container']]
 -   plugin.manager.purge.diagnostics:
 -     class:  Drupal\purge\Plugin\Purge\DiagnosticCheck\PluginManager
 -     parent: default_plugin_manager
 -     public: false
 - 
 -   # PURGE.PROCESSORS
 -   #
 -   # Processors pull items from the queue and initiate purging activity.
 -   purge.processors:
 -     class: Drupal\purge\Plugin\Purge\Processor\ProcessorsService
 -     arguments: ['@plugin.manager.purge.processor', '@config.factory']
 -     public: true
 -   plugin.manager.purge.processor:
 -     class: Drupal\purge\Plugin\Purge\Processor\PluginManager
 -     parent: default_plugin_manager
 -     public: false
 - 
 -   # PURGE.PURGERS:
 -   #
 -   # The executive service which lets enabled purgers invalidate external caches.
 -   purge.purgers:
 -     class: Drupal\purge\Plugin\Purge\Purger\PurgersService
 -     arguments: ['@plugin.manager.purge.purgers', '@purge.logger', '@purge.purgers.tracker.capacity', '@purge.purgers.tracker.runtime_measurement', '@config.factory', '@lock', '@purge.diagnostics']
 -     public: true
 -   purge.purgers.tracker.capacity:
 -     class: Drupal\purge\Plugin\Purge\Purger\CapacityTracker
 -     public: true
 -   purge.purgers.tracker.runtime_measurement:
 -     class: Drupal\purge\Plugin\Purge\Purger\RuntimeMeasurementTracker
 -     arguments: ['@state']
 -     public: true
 -     tags:
 -       - { name: needs_destruction }
 -   plugin.manager.purge.purgers:
 -     class: Drupal\purge\Plugin\Purge\Purger\PluginManager
 -     parent: default_plugin_manager
 -     public: false
 - 
 -   # PURGE.TAGSHEADERS
 -   #
 -   # Discovered tagsheader plugins, register required response headers using the
 -   # CacheableResponseSubscriber declared below. Each plugin defines the name
 -   # of the header to be send out and can override header value formatting.
 -   purge.tagsheaders:
 -     class: Drupal\purge\Plugin\Purge\TagsHeader\TagsHeadersService
 -     arguments: ['@plugin.manager.purge.tagsheader']
 -     public: true
 -     calls:
 -     - [setContainer, ['@service_container']]
 -   purge.tagsheaders.cacheable_response_subscriber:
 -     class: Drupal\purge\EventSubscriber\CacheableResponseSubscriber
 -     arguments: ['@purge.tagsheaders']
 -     public: true
 -     tags:
 -       - { name: event_subscriber }
 -   plugin.manager.purge.tagsheader:
 -     class: Drupal\purge\Plugin\Purge\TagsHeader\PluginManager
 -     parent: default_plugin_manager
 -     public: false