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
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.