trait
      
      
        Observer[-T] extends AnyRef
      
      
      
          
        
      
      
        
        
        
        
              Abstract Value Members
              - 
      
      
      
      
        abstract 
        def
      
      
        onComplete(): Unit
      
      
      
        
      
    
      
     - 
      
      
      
      
        abstract 
        def
      
      
        onError(ex: Throwable): Unit
      
      
      
        
      
    
      
     - 
      
      
      
      
        abstract 
        def
      
      
        onNext(elem: T): Future[Ack]
      
      
      
        
      
    
      
     
             
        
              Concrete Value Members
              - 
      
      
      
      
        final 
        def
      
      
        !=(arg0: Any): Boolean
      
      
      
        
      
    
      
     - 
      
      
      
      
        final 
        def
      
      
        ##(): Int
      
      
      
        
      
    
      
     - 
      
      
      
      
        final 
        def
      
      
        ==(arg0: Any): Boolean
      
      
      
        
      
    
      
     - 
      
      
      
      
        final 
        def
      
      
        asInstanceOf[T0]: T0
      
      
      
        
      
    
      
     - 
      
      
      
      
        
        def
      
      
        clone(): AnyRef
      
      
      
        
      
    
      
     - 
      
      
      
      
        
      
    
      
     - 
      
      
      
      
        
      
    
      
     - 
      
      
      
      
        
        def
      
      
        finalize(): Unit
      
      
      
        
      
    
      
     - 
      
      
      
      
        final 
        def
      
      
        getClass(): Class[_]
      
      
      
        
      
    
      
     - 
      
      
      
      
        
        def
      
      
        hashCode(): Int
      
      
      
        
      
    
      
     - 
      
      
      
      
        final 
        def
      
      
        isInstanceOf[T0]: Boolean
      
      
      
        
      
    
      
     - 
      
      
      
      
        
      
    
      
     - 
      
      
      
      
        final 
        def
      
      
        notify(): Unit
      
      
      
        
      
    
      
     - 
      
      
      
      
        final 
        def
      
      
        notifyAll(): Unit
      
      
      
        
      
    
      
     - 
      
      
      
      
        final 
        def
      
      
        synchronized[T0](arg0: ⇒ T0): T0
      
      
      
        
      
    
      
     - 
      
      
      
      
        
        def
      
      
        toString(): String
      
      
      
        
      
    
      
     - 
      
      
      
      
        final 
        def
      
      
        wait(): Unit
      
      
      
        
      
    
      
     - 
      
      
      
      
        final 
        def
      
      
        wait(arg0: Long, arg1: Int): Unit
      
      
      
        
      
    
      
     - 
      
      
      
      
        final 
        def
      
      
        wait(arg0: Long): Unit
      
      
      
        
      
    
      
     
             
        
        
         
        
        
       
      
      
     
      
The Observer from the Rx pattern is the trio of callbacks that get subscribed to an Observable for receiving events.
The events received must follow the Rx grammar, which is: onNext * (onComplete | onError)?
That means an Observer can receive zero or multiple events, the stream ending either in one or zero
onCompleteoronError(just one, not both), and after onComplete or onError, a well behaved Observable implementation shouldn't send any more onNext events.