Hello,

We historically have been a RabbitMQ environment, but we're looking at
using Kafka for a new project and I'm wondering if the following
topology/setup would work well in Kafka (for RMQ we'd use federation):

* Multiple remote datacenters consisting each of a single server running an
HTTP application that receives client data and generates events. Each
server would also run single-node Kafka "cluster". The application would
write events as messages into the single-node Kafka "cluster" running on
the same machine.
* A hub datacenter that the remote data centers are connected to via SSL.
The hub data center would run a multi-node Kafka cluster (3 nodes).
* Use mirrormaker in the hub data center to mirror event messages from each
of the remote single-node servers into the hub's central Kafka cluster,
where all of the real consumers are listening.

The problem set is each of the remote servers is collecting data from
customers over HTTP and returning responses, but those remote servers are
also generating events from those customer interactions. We want to publish
those events into a central hub data center for analytics. We want the
event messages at the remote servers to queue up when their network
connections to the hub data center is unreliable, and automatically relay
queued messages to the hub data center when the network comes back...making
the event relay system tolerant to WAN network faults. We'd also want to
set up some kind of TTL on queued messages, so if the WAN connection to the
hub is down for an extended period of time, the messages queued on the
remote servers don't build up infinitely.

Any thoughts on if this setup is advisable/inadvisable with Kafka (or any
other thoughts on it) would be greatly appreciated.

-J

Reply via email to