Server

Compact Architecture with Kafka

Updated: December 2, 2024

Architecture Description

Compared to the Compact Architecture with Redis, this one works with Kafka. Consequently, Nuxeo Stream and the Bulk Service relies on Kafka, providing significant performance improvement compared to a Redis-based infrastructure. Redis and Chronicle Queue are no longer necessary by the Nuxeo architecture.

This is a compact architecture because it includes a single node for Kafka, so you don't need to deploy Zookeeper to keep track of status of the Kafka cluster nodes, Kafka topics, partitions etc.

In this architecture:

  • A load balancer with sticky sessions is used.
  • A total of two machines are prepared for the application cluster. Each machine holds a Nuxeo server node and a reverse proxy. More machines can be added later for scalability purpose.
  • An Elasticsearch cluster with at least 3 nodes
  • A database cluster with at least 2 nodes
  • A Kafka node as the default implementation for Nuxeo Stream

compact-with-kafka-1.png
compact-with-kafka-1.png

Limitations

  • Kafka is the single point of failure. In case of failure, scheduled jobs might be lost. To solve this issue, several Kafka nodes are needed, as well as Zookeeper.

→ Jump to the Distributed architecture with Kafka to provide a full high availability and fault tolerant Nuxeo architecture.