The core of the toolkit is shown in green. It consists of two modules, both of which are required:
-
Commons - Basic primitives for symmetrical development on various programming languages, as well as patterns, that are used in the rest of the modules.
-
Components - Contains standard components, such as component logging, performance counters, synchronization, configuration, caching, and others. Specific implementations of these components are found in the extension modules.
The main (basic) modules are shown in blue. Although they are not required, they are used in most microservices:
-
Container - A basic container, which is used to compose microservices from loosely-coupled components (see The Structure of a Microservice).
-
Data - Basic components for storing data and implementing storage of data in memory and in the file system.
-
RPC - Basic components for synchronous communication and implementations using local calls and the HTTP/REST protocol.
-
Messaging - Basic components for asynchronous communication and implementing local queues.
Last but not least are the additional (optional) modules, shown in red. These modules are used to support specific technologies, such as:
- Azure - components for working with the Azure cloud.
- AWS - components for working with the AWS cloud.
- GCP - components for working with the Goolgle cloud.
- MongoDB - components for storing data in MongoDB.
- GRPC - components for synchronous communication via GRPC.
- ActiveMQ - components for asynchronous communication via ActiveMQ.
- MQTT - components for asynchronous communication via the MQTT protocol.
- Memcached - components for caching and synchronizing with Memcached.
- Redis - components for caching and synchronizing with Redis.
- ElasticSearch - components for logging with ElasticSearch.
- Prometheus - components for using performance counters with Prometheus.