1. Supported Downlink Events
Kafka downlink supports mapping messages to:
- WritePoint
- CommandReceived
- RpcResponseReceived
Downlink overview see: Downlink Overview
2. Topic and Consumer Group
2.1 Exact Topic Restriction
Downlink topic must be Exact String, does not support:
{{template}}*wildcardre:/regex:
2.2 Consumer Group
Consumer group id is fixed as:
ng-gateway-plugin-{app_id}
And:
enable.auto.commit=false(Commit controlled by AckPolicy)auto.offset.reset=latest
Meaning of auto.offset.reset=latest
When this consumer group has no offset, it will start consuming from latest (Will not backtrack history). If you expect "Consume from earliest", current version does not provide this option (Needs separate handling on platform/ops side).
3. AckPolicy / FailurePolicy
Kafka downlink "Confirmation" corresponds to commit:
ack_policy=never: Do not commitack_policy=always: Commit regardless of success/failure (Discard bad message)ack_policy=on_success:- Parse success or ignored by filter → commit
- Parse failure:
failure_policy=drop→ commit (Discard)failure_policy=error→ do not commit (Wait for redelivery/fix)
4. Payload Selection
Recommend prioritizing EnvelopeJson (Stable, mixed topic routable):
If platform side shape is inconsistent, then use MappedJson, and be sure to add filter in mixed topic scenarios:
5. Common Pitfalls
- Topic configured with template: Will be rejected (Downlink must be exact topic)
- Same topic mixes multiple routes, but ack_policy inconsistent: Will error when building routing table
- Headers non-UTF-8: filter.mode=property cannot match (Will be ignored)
