Architecture

In this section we'll take a closer look at Kuzzle's server architecture.

archi_core

Core Components

The diagram above depicts the various components that make up the server architecture, these are:

  • Entry Points: handles the incoming message and sends them to the Funnel.
  • Router: exposes the HTTP endpoints, normalizes any request, and forwards it to the Funnel.
  • Funnel: receives normalized requests and forwards it to the appropriate controller, sends results back to the Entry Points.
  • Controllers: receives data fom the Funnel, processes it, and returns a result to the Funnel (see API reference).
  • Internal Components: are internal modules used by controllers to process a request.
  • Service Components: are interfaces used by controllers to connect to external services (see below).

Services

In our architecture, a "Service" is an interface that interacts with external components.

Kuzzle currently implements the following Services:

A Service can be used by more than one Service Component. For example, Redis is used by both the Internal Cache Service Component and the Memory Storage Service Component (see default.config.js).