code: function BoundedBroadcast(source, max) {
      EventEmitter.call(this);
      this.cache = []; this.index = -1; this.max = max || 500; // cyclic cache
      this.source = source;
      var self = this;
      this.source.on('bounded-broadcast-receive', function(socket, message){
          self.receive(message);
      });
  }
docs: /*!
  It takes a unique value for peer and a counter to distinguish a message. The
  number of message is bounded to a size.
  \param source the protocol receiving the messages
  \param max the maximum size of the cache