Antonio Glavocevic
Antonio Glavocevic

Reputation: 816

Does using a single partition per channel (topic) stop Hyperledger Fabric from scaling orderers horizontally?

When using a Kafka ordering service in Hyperledger Fabric each channel is mapped to a Topic with a single partition. Wouldn't this mean that there is only one leader broker per channel and that adding more orderers for scaling horizontally, when the network grows, pointless since each orderer needs to talk to the same leader broker to create blocks for a given channel?

Is it even a good idea to add more orderers as the network grows or should the number of orderers only be increased to stop single point of failure for block production per channel?

i.e. there is no difference between 10 organisations fetching blocks from 1 orderer for 1 channel and 10 organisations fetching blocks from 10 orderers for 1 channel. It just means that in the former, 9 orderers can die and blocks will keep being served.

Upvotes: 0

Views: 145

Answers (1)

Gari Singh
Gari Singh

Reputation: 12013

Each orderer node acts as a producer and consumer for Kafka topics. On the consumption side, each orderer node has it's own file-based ledger which is uses to server blocks to peers.

Given that clients and peers connect to the orderer nodes and not Kafka, you would run multiple orderer nodes for both resilience as well as for scale as well (for example to scale the number of connections, file system reads, etc) depending on the number of clients and peers that are part of the network.

Upvotes: 1

Related Questions