Architecture #
In this section we'll take a closer look at Kuzzle's server architecture.
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:
- elasticsearch.js: interface to Elasticsearch, used for persistent data storage.
- redis.js: interface to the redis, used as a cache.
- internalEngine.js: interface to Kuzzle's configuration index in Elastic Search.
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).
Edit this page on Github(opens new window)