anchor.diff:  
       if streamingPoolContains(id) <1>
           return getStreamFor(id)
  -    
  +
       if not streamFactoriesCanCreate(id) <2>
           throws exception
   
  
positive.code: 
  [NOTE]
  ====
  Keep in mind that you can query the for the same ID multiple times and you will get the same instance of the `Publisher` (like in a `Map<StreamId<T>, Publisher<T>>`).
  ====
  
  === Provide a stream
  [source,java]
  ----
  class AnyClass {
      @Autowired
      private ProvidingService providingService;
  
      private StreamId<Double> deviceStreamId;
  
      public void anyMethod() {
          // ...
          Publisher<Double> deviceStream = createStream();
          providingService.provide(deviceStreamId, deviceStream);
          // ...
      }
  }
  ----
  
negative.code: === How to lazily create Reactive Streams
  You do not have to explicitly provide `Publisher` instances in the Streaming Pool. A common way of creating Reactive Streams is through the use of `StreamFactory`. A `StreamFactory` is a mechanism that is used to create a `Publisher` from a given `StreamId`. When looking for a `StreamId` that has not been provided using the `ProvidingService`, the framework checks if any registered `StreamFactory` is able to create it.
  
  Using this mechanism, a `Publisher` is created on-demand (lazily) if it is not already present in the Streaming Pool system. A Stream Factory is a class that implements the interface `StreamFactory`.
  
  ==== Stream factory
  [source,java]
  