anchor.diff:  [[process_session]]
   ==== ProcessSession
   The ProcessSession, often referred to as simply a "session," provides
  -a mechanism by which FlowFiles
  -can be created, destroyed, examined, cloned, and transferred to other
  -Processors. Additionally, a
  -ProcessSession provides mechanism for creating modified versions of
  -FlowFiles, by adding or removing
  -attributes, or by modifying the FlowFile's content. The ProcessSession
  -also exposes a mechanism for
  -emitting provenance events that provide for the ability to track the
  -lineage and history of a FlowFile.
  -After operations are performed on one or more FlowFiles, a
  -ProcessSession can be either committed or
  -rolled back.
  +a mechanism by which FlowFiles can be created, destroyed, examined, cloned, and transferred to other
  +Processors. Additionally, a ProcessSession provides mechanism for creating modified versions of
  +FlowFiles, by adding or removing attributes, or by modifying the FlowFile's content. The ProcessSession
  +also exposes a mechanism for emitting provenance events that provide for the ability to track the
  +lineage and history of a FlowFile. After operations are performed on one or more FlowFiles, a
  +ProcessSession can be either committed or rolled back.
   
   [[process_context]]
   ==== ProcessContext
  -The ProcessContext provides a bridge between a Processor and the
  -framework. It provides information
  -about how the Processor is currently configured and allows the
  -Processor to perform
  -Framework-specific tasks, such as yielding its resources so that the
  -framework will schedule other
  +The ProcessContext provides a bridge between a Processor and the framework. It provides information
  +about how the Processor is currently configured and allows the Processor to perform
  +Framework-specific tasks, such as yielding its resources so that the framework will schedule other
   Processors to run without consuming resources unnecessarily.
   
   
  
positive.code: To achieve this, a developer creates a new Maven Artifact, which we
  refer to as the NAR artifact. The packaging is
  set to `nar`. The `dependencies` section of the POM is then created so
  that the NAR has a dependency on all NiFi
  Components that are to be included within the NAR.
  
  TODO: DISCUSS HOW TO INCLUDE THE NAR MAVEN PLUGIN.
  
  The NAR is able to have one dependency that is of type `nar`. If more
  than one dependency is specified that is of type
  
negative.code: While `Processor` is an interface that can be implemented directly, it
  will be extremely rare to do so, as
  the `org.apache.nifi.processor.AbstractProcessor` is the base class
  for almost all Processor implementations. The `AbstractProcessor` class provides a significant
  amount of functionality, which makes the task of developing a Processor much easier and more convenient.
  For the scope of this document, we will focus primarily on the `AbstractProcessor` class when dealing
  with the Processor API.
  
  .Concurrency Note
  NiFi is a highly concurrent framework. This means that all extensions
  must be thread-safe. If unfamiliar with writing concurrent software in Java, it is highly
  recommended that you familiarize yourself with the principles of Java concurrency.
  
  
  [[supporting_api]]
  