Architecture

In this section we'll take a deeper look at the Kuzzle Core internals.

archi_core

Core Components

The above schema shows the main architecture in Kuzzle, which is composed of the following entities.

  • Kuzzle Proxy: handles the communication between the client and Kuzzle (see Connecting to kuzzle), and forwards the input message to Kuzzle.
  • Entry Points: handles the incoming message from the Proxy and sends them to the Funnel.
  • Router: exposes the API HTTP routes, normalizes the Request and sends them to the Funnel.
  • Funnel: analyses the Request and forwards it to the appropriate Controller.
  • Controllers: handle and respond to client requests (see API reference)
  • Internal Components: Any component internally accessed by controllers.
  • Service Components: Any component used to interact with external services (see below).

Services

In Kuzzle, a Service module is the implementation of the interface to different components of the application (think of a system service).

Kuzzle currently implements the following Services:

A Service can be added to different engines. For example, Redis is used by both the internalCache and the memoryStorage (see default.config.js).