Skip to content
  • Kostas Christidis's avatar
    Add Kafka-based orderer · f6640f22
    Kostas Christidis authored
    Related: http://jira.hyperledger.org/browse/FAB-32
    
    This changeset introduces a simple, solo-like Kafka-based orderer,
    complete with a config file that ties into the orderer config mechanism
    introduced in an earlier changeset, unit and BDD tests. It also provides
    a sample client that broadcasts and delivers counter values.
    
    For a demo of this work please watch this video:
    https://ibm.box.com/s/kqkk12vn18w3s3in2vkioucl9z32jk2h
    
    
    
    This changeset introduces the following abstractions:
    
    - Broker: Provides info on the atomic broadcast seek requests (earliest
    batch available, etc.)
    - Producer: Sends batches to Kafka
    - Consumer: Reads a stream of batches from Kafka
    - Client Deliver: A consumer dedicated to a connected client
    - Deliverer: Handles the deliver part of the Kafka-based orderer, spawns
    a new Client Deliver instance per connected client
    - Broadcaster: Handles the broadcast part of the Kafka-based orderer;
    cuts batches and sends them to Kafka
    - Orderer: Consists of a Deliverer and Broadcaster and, as the name
    suggests, handles all ordering requests (broadcast and deliver RPCs)
    issued by the connected clients.
    
    Change-Id: I09a313e9bf681051ee73b35d8d14401fee234f02
    Signed-off-by: default avatarKostas Christidis <kostas@christidis.io>
    f6640f22