There are three ordering services, as you might have already read in the doc -
- 1. SOLO
- 2. Kafka-based
- 3. PBFT (pending)
The orderer interfaces are implemented in the orderer executable which is packaged as the fabric-orderer Docker image. So there are two configuration modes for the orderer - SOLO is a standalone process orderer for usage during development and testing. And Kafka-based service leverages Kafka as the "consensus" mechanism to make multiple orderer processes crash fault tolerant and order transactions. In this case, multiple orderer processes communicate with a Kafka cluster which ensures that each orderer process receives transactions and generates blocks in the same order. The orderer process (or fabric-orderer containers) communicate with a Kafka cluster.
Hope this helps :)