http-kafka
support, with proxy
behavior.proxy
kind http-kafka
binding adapts http
request-response streams to kafka
topic streams.fetch
capability map http
GET
requests to a kafka
log-compacted topic, supporting filtered retrieval of messages with a specific key, or unfiltered retrieval of all messages with distinct keys in the topic merged into a unified response.kafka
message key, message headers, or a combination of both message key and headers, extracting the parameter values from the inbound http
request path.200
http
responses include an etag
header that can be used with if-none-match
for subsequent conditional GET
requests to check for updates. Rather than polling, http
requests can also include the prefer: wait=N
header to wait a maximum of N
seconds before responding with 304
if not modified. When a new message arrives in the topic that would modify the response, then all prefer: wait=N
clients receive the response immediately.produce
capability map any http
request-response to a correlated pair of kafka
messages. The http
request message is sent to a requests
topic, with a zilla:correlation-id
header. When the request message received and processed by the kafka
requests
topic consumer, it produces a response message to the responses
topic, with the same zilla:correlation-id
header to correlate the response.idempotency-key
http
header can be replayed and safely receive the same response. This requires the kafka
consumer to detect and ignore the duplicate request with the same idempotency-key
and zilla:correlation-id
.async
allows clients to include a prefer: respond-async
header in the http
request to receive 202 Accepted
response with location
response header.route
condition
with matching GET
method and location
path is also required for follow up GET
requests to return the same response as would have been returned if prefer: respond-async
request header had been omitted.http
request-response streams to kafka
topic streams.type
*const "http-kafka"
http
request-response streams to kafka
topic streamskind
*enum [ "proxy" ]
http-kafka
proxy
exit
string
http
request-response streams to kafka
topic streams.http
request-response streams to kafka
topic streams.header
string
"idempotency-key"
http
request-response streams to kafka
topic streams.http
request-response streams to kafka
topic streams.reply-to
string
"zilla:reply-to"
.correlation-id
string
"zilla:correlation-id"
.http
request-response streams to kafka
topic streams.guarded
object
as named map of string
array
exit
*string
http
request-response streams to kafka
topic streams.method
string
GET
.path
string
/{topic}
http
request-response streams to kafka
topic fetch streams.http
request-response streams to kafka
topic fetch streams.key
string
${params.key}
headers
object
${params.headerX}
http
request-response streams to kafka
topic streams where all messages are fetched and must be merged into a unified http
response.content-type
const "application/json"
object
http
request-response streams to kafka
topic streams where all messages are fetched and must be merged into a unified http
response.initial
string
const "[]"
path
string
const "/-"
http
request-response streams to kafka
topic produce streams.capability
const "produce"
topic
string
${params.topic}
key
string
${params.id}
overrides
object
reply-to
string
async
object
${correlationId}