Hi there. Once again, I don't think I could get the docs on another topic. So my nodejs client connects to the broker and the first thing it does is store the topic metadata:
data received { "brokers": [ { "nodeId": 0, "host": "10.139.245.106", "port": 9092, "byteLength": 24 }, { "nodeId": 1, "host": "localhost", "port": 9093, "byteLength": 19 } ], "topicMetadata": [ { "topicErrorCode": 0, "topicName": "foozbar", "partitions": [ { "replicas": [ 0 ], "isr": [ 0 ], "partitionErrorCode": 0, "partitionId": 0, "leader": 0, "byteLength": 26 }, { "replicas": [ 1 ], "isr": [ 1 ], "partitionErrorCode": 0, "partitionId": 1, "leader": 1, "byteLength": 26 }, { "replicas": [ 0 ], "isr": [ 0 ], "partitionErrorCode": 0, "partitionId": 2, "leader": 0, "byteLength": 26 }, { "replicas": [ 1 ], "isr": [ 1 ], "partitionErrorCode": 0, "partitionId": 3, "leader": 1, "byteLength": 26 }, { "replicas": [ 0 ], "isr": [ 0 ], "partitionErrorCode": 0, "partitionId": 4, "leader": 0, "byteLength": 26 } ], "byteLength": 145 } ], "responseSize": 200, "correlationId": -1000 } Ok, so far so good. So I kill node 0 on purpose. Trying to simulate a broker failure, and then I fetch metadata again: data received { "brokers": [ { "nodeId": 0, "host": "10.139.245.106", "port": 9092, "byteLength": 24 }, { "nodeId": 1, "host": "localhost", "port": 9093, "byteLength": 19 } ], "topicMetadata": [ { "topicErrorCode": 0, "topicName": "foozbar", "partitions": [ { "replicas": [ 0 ], "isr": [], "partitionErrorCode": 5, "partitionId": 0, "leader": -1, "byteLength": 22 }, { "replicas": [ 1 ], "isr": [ 1 ], "partitionErrorCode": 0, "partitionId": 1, "leader": 1, "byteLength": 26 }, { "replicas": [ 0 ], "isr": [], "partitionErrorCode": 5, "partitionId": 2, "leader": -1, "byteLength": 22 }, { "replicas": [ 1 ], "isr": [ 1 ], "partitionErrorCode": 0, "partitionId": 3, "leader": 1, "byteLength": 26 }, { "replicas": [ 0 ], "isr": [], "partitionErrorCode": 5, "partitionId": 4, "leader": -1, "byteLength": 22 } ], "byteLength": 133 } ], "responseSize": 188, "correlationId": -1000 } Well, I can see from partition metadata that some partions have no leader (-1), but my problem is that I actually rely on the brokers list to create a pool of connections. And even when the broker 0 is down, I still get it back from the metadata. Is this what is expected? I know it could be that brokers are only a list of all places where that topic could be found, but in that case couldn't we at least have a flag indicating wether that broker is online or not? Regards -- The intuitive mind is a sacred gift and the rational mind is a faithful servant. We have created a society that honors the servant and has forgotten the gift.