You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
https://jira.hyperledger.org/browse/FAB-1367
This is the changeset that ties together all the previous changesets in
this series: it rebases the Kafka consenter on the components that are
meant to be common across all consensus implementations. The major
addition here is the new logic which resides in "main.go" in the kafka
package.
On top of the existing unit tests for the Kafka consenter's
sub-components (producer, consumer, broker), this changeset introduces
some basic unit tests for the new logic, identical to the ones for the
solo package. More tests are needed however, and we are in the process of
writing BDD feature files for that purpose - see
https://jira.hyperledger.org/browse/FAB-1335 for more.
This changeset also adds the following:
1. A "disk" (a channel for passing messages) to the mock Consumer. The
mock Consumer will use that "disk" to fetch the replies that it returns
during the Recv() call. This is required for the units tests we
introduced, where we want the (mock) consumer to respond with the
messages that the (mock) producer posted. The two mock constructs use
this disk channel to communicate, simulating a consumer that reads the
messages that a producer posted to a partition.
2. A timeout to the mock consumer's Recv() method to prevent blocking in
for/select loops.
Finally, this changeset makes the following refactoring-related changes:
1. It establishes a common path for both solo and the kafka consenters in
the orderer package's "main.go" - the previous version of this file was
whipped up together quickly and was essentially a giant if-else
construct. As we get closer to a release, some refactoring was in order.
2. It makes all dependencies in the kafka package explicit. In the
previous version, we would pass around the entire config object to
functions and let them pick what they needed from it. While this made for
symmetric and simple-looking function signatures, it allowed for
ambiguous and implicit dependencies, and would increase confusion and
maintenance burden. This specific edit affects almost all files in the
kafka package and makes for a bigger diff than necessary. I had
unfortunately began working on this before beginning the 'rebasing on
common components' work, and proceeded with both tasks in parallel. (In
hindsight, I should have scheduled this a bit better.)
Change-Id: I46392b8079ec02e273b16f51a7e8ed514c64748f
Signed-off-by: Kostas Christidis <[email protected]>
0 commit comments