This article briefly decribes the microservices of yuuvis® Momentum.
Table of Contents
Introduction
The requirement of high and thus horizontal scalability as well as high availability is currently best combatted by architectures comprising of distributable small services which can be run in more than one instance. Such architectures offer redundance and pinpoint scalability—leading, among other advantages, to the wild success of this architectural pattern. This article describes the services yuuvis® Momentum is made of.
Core Services
yuuvis® Momentum fields a core consisting of a small zoo of cloud-native microservices, which allows for high availability and scalability. The entirety of the core's functions is made available through the API-gateway as core API. Two services—three if counting in the API-gateway— serve the microservice architecture itself: ADMIN allowing service administration like restarting a service or changing its intended amount of instances, and CONFIG, reading, caching and delivering configuration information to the other services.
Name | Function | Configuration profiles | Certificates | Standard ports | Scalable |
---|---|---|---|---|---|
Gateway | |||||
API | API-gateway | prod, redis, docker, kubernetes, metrics | no | 7450-7459 | yes |
Functional Core Services | |||||
AUTHENTICATION | user authentication, session management | prod, oauth2, docker, kubernetes, metrics | yes | 80 | no |
ORGANIZATION | mapping users to roles (the latter carrying the permissions) | prod, oauth2, keycloak, docker, kubernetes, metrics | yes | 7440-7449 | yes |
SYSTEM | schema management | prod, docker, redis, kubernetes, metrics | yes | 7400 | yes (as of 2020 Autumn) |
REPOSITORY | management of the binary storage | prod, storage, docker, kubernetes, redis, metrics | no | 7500-7509 | yes |
REGISTRY | management of object metadata in the relational database | prod, cloud, mq, jpa, dbs, redis | no | 7510-7519 | yes |
INDEX | indexing in Elasticsearch | prod, es, dms, dmscloud, docker, kubernetes, redis, metrics | no | 7291-7300 | yes |
SEARCH | processing of queries | prod, es, dms, dmscloud, docker, kubernetes, metrics | no | 7221-7230 | yes |
AUDIT | object history, audit trail management | prod, jpapostgres, dbs, docker, kubernetes, metrics | no | 7251 | yes |
CONTENTANALYZER | synchronous full-text extraction and determination of the MIME type | prod, docker, kubernetes, metrics | no | 7430-7439 | yes |
Archive Services | |||||
ARCHIVE | connector for storage solutions | prod, docker, storage | no | 7530-7539 | yes |
Rendition Services | |||||
CONTROLLER | job messaging using third party RabbitMQ and more, used for asynchronous operations | prod, docker, es, oauth2, lc, mq, kubernetes | yes | 7332-7335 | yes |
TEXTEXTRACTOR | asynchronous full-text extraction | prod, docker, es, lc, mq, kubernetes | no | 7400-7429 | yes |
RENDITION | generation of renditions of submitted documents | no | 7341 | yes | |
Structural Services | |||||
ADMIN* ** | administration, monitoring, configuration | prod, docker, kubernetes | no | 7273 | yes |
CONFIG | configuration server | prod | no | 7281 | yes |
DISCOVERY** | service registration | prod | no | 7261 | no |
Rollback Administration | |||||
COMMANDER* | command tool for rollbacks | prod, dbs, es | no | 7412 | no |
* service of special interest for DevOps | ** obsolete when using Kubernetes
Services for Functional Extension
The client services offer, in accordance with the layered onion approach, both additional functionality as well as higher-level API functions valuable to client applications. Next to the user and the viewer services, the web-api gateway service is the main service for the client (for more information, refer to "Additional Services").
Name | Function | Configuration profiles | Certificates | Standard ports | scalable |
---|---|---|---|---|---|
Client Services | |||||
API-WEB | web-api gateway, bundling of higher-level functions in one client API, adds more features like custom forms, localization, and object type icons to the system. | prod | no | 7550 | yes |
CLIENT | reference client based on core and framework libraries that can be used for custom client development | prod | no | 80 | yes |
ARCHITECT (as of 2020 Winter) | supports custom form modeling including form scripts, localization of technical names, and user management (will be moved to another application later this year). | prod | no | 80 | yes |
VIEWERSERVICE | offers client-side viewing capability for certain file types | prod | no | 80 | yes |
USERSERVICE | stores user settings and caches user information | - | no | 8080 | yes |
SOTHOOK | fills the property appClientsystem:leadingTypeId | prod | no | 10779 | yes |
Tenant Management | |||||
API-TM | tenant management API with endpoints for maintaining tenants and their users | prod, oauth2 | no | 8080 | yes |
MANAGEMENT-CONSOLE | management console API as backend service for maintaining organizations that maintain tenants. | - | no | 7560 | yes |
MANAGEMENT-CONSOLE-CLIENT | Web-client with a graphical user interface for the management console API. | - | no | 80 | yes |
METRICS | provides tenant specific metrics. The tenant management API offers exposed endpoints of this service. | - | no | 8080 | yes |
Business Process Management (BPM) | |||||
BPM-ENGINE (as of 2020 Autumn) | Flowable-based BPM engine | - | no | 8080 | yes |
Summary
This article gave information on the modular composition of the yuuvis® Momentum core and its client layer extension which is useful for operations.