Skip to content

X-Road technologies

Technical Specification

Version: 1.14
19.12.2023

Doc. ID: ARC-TEC


Version history

DateVersionDescriptionAuthor
02.02.20181.0Initial versionAntti Luoma
02.03.20181.1Added uniform terms and conditions referenceTatu Repo
17.04.20191.2Added RHEL7, Ubuntu 18.04, systemd and Postgres 10Petteri Kivimäki
11.09.20191.3Remove Ubuntu 14.04 supportJarkko Hyöty
12.05.20201.4Add link to X-Road core tech radarPetteri Kivimäki
15.09.20201.5Updated to match Security Server REST API architectureJanne Mattila
02.06.20211.6Backup encryption related updatesAndres Allkivi
07.09.20211.7Update technologiesIlkka Seppälä
26.09.20221.8Remove Ubuntu 18.04 supportAndres Rosenthal
08.06.20231.9Central Server technologies updateJustas Samuolis
05.10.20231.10Update to Java 17Justas Samuolis
04.10.20231.11Remove Akka referencesRičardas Bučiūnas
20.11.20231.12Update version referencesRičardas Bučiūnas
19.12.20231.13Added RHEL 9Justas Samuolis
17.07.20241.14Update to Java 21Ovidijus Narkevičius

Table of Contents

License

This document is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/

1 Introduction

This document describes the general technology composition of X-Road components. To better illustrate the role of main technologies in X-Road, the information is collected in to several technology matrices highlighting the technology relationships between components.

Besides, the X-Road Core Tech Radar is a list of technologies used in the implementation of the core components of X-Road.

1.1 Terms and abbreviations

See X-Road terms and abbreviations documentation [TA-TERMS].

1.2 References

  1. ARC-CP -- X-Road: Configuration Proxy Architecture. Document ID: ARC-CP.
  2. ARC-CS -- X-Road: Central Server Architecture. Document ID: ARC-CS.
  3. ARC-SS -- X-Road: Security Server Architecture. Document ID: ARC-SS.
  4. ARC-OPMOND -- X-Road: Operational Monitoring Daemon Architecture. Document ID: ARC-OPMOND.
  5. ARC-G -- X-Road Architecture. Document ID: ARC-G.
  6. TA-TERMS -- X-Road Terms and Abbreviations. Document ID: TA-TERMS.

2 Overview matrix of the X-Road technology

Table 1 presents the list of technologies used in the X-Road and mapping between the technologies and X-Road components.

Table 1. Technology matrix of the X-Road

TechnologySecurity ServerCentral ServerConfiguration proxyOperational Monitoring Daemon
Java 21XXXX
CXX
LogbackXXXX
gRPCXXXX
Jetty 11X[3]X[4]
Ubuntu 20.04XXXX
Ubuntu 22.04XXXX
Red Hat Enterprise Linux 7 (RHEL7)XX
Red Hat Enterprise Linux 8 (RHEL8)XX
Red Hat Enterprise Linux 9 (RHEL9)XX
PostgreSQL 12+[5]XXX
nginxXX
PAMXX
Liquibase 4XXX
systemdXXXX
PKCS #11[2]XXX
Dropwizard Metrics 4XX
Spring Boot 3XX
Vue.js 3XX
Npm 8XX
Node 18XX
TypescriptXX
OpenAPI 3XX
Embedded Tomcat 10XX
GNU Privacy GuardXX

See [ARC-G] for general X-Road architecture details.

[2] The use of hardware cryptographic devices requires that a PKCS #11 driver is installed and configured in the system.

[3] Security Server uses embedded Jetty for clientproxy, serverproxy and OCSP responder.

[4] Central Server uses embedded Jetty for management service and registration service.

[5] PostgreSQL version varies depending on operating system. By default, RHEL7 uses version 9, RHEL8 - 10, RHEL9 - 13, Ubuntu 20.04 - 12, Ubuntu 22.04 - 14. User may also use external PostgreSQL server.

3 Central Server technologies

Table 2 presents the list of technologies used in the Central Server and the mapping between technologies and Central Server components.

Table 2. Technology matrix of the Central Server

TechnologySignerPassword StoreManagement/Registration ServiceDatabaseUser InterfaceRest APIBackend ScriptsConfiguration Client
Java 21XXXX
CX
LogbackXXXX
gRPCXX
Embedded Jetty 11X
Embedded Tomcat 10X
Spring Boot 3XX
Vue.js 3X
Npm 8X
Node 18X
TypescriptX
OpenAPI 3XXX
PostgreSQL 12+[3]XXX
nginxX
PAMX
Liquibase 4X
systemdXXXX
PKCS #11[2]X
GNU Privacy GuardX

[2] The use of hardware cryptographic devices requires that a PKCS #11 driver is installed and configured in the system.

[3] PostgreSQL version varies depending on operating system. By default, Ubuntu 20.04 uses 12, Ubuntu 22.04 - 14. User may also use external PostgreSQL server.

See [ARC-CS] for the Central Server details.

4 Configuration proxy technologies

Table 3 presents the list of technologies used in the configuration proxy and the mapping between technologies and configuration proxy components.

Table 3. Technology matrix of the configuration proxy

TechnologyWeb ServerConfiguration ProcessorSignerConfiguration Client
Java 21XXX
LogbackXXX
gRPCXX
nginxX
systemdXXXX
PKCS #11[2]X

[2] The use of hardware cryptographic devices requires that a PKCS #11 driver is installed and configured in the system.

See [ARC-CP] for the configuration proxy details.

5 Security Server technologies

Table 4 presents the list of technologies used in the Security Server and the mapping between technologies and Security Server components.

Table 4. Technology matrix of the Security Server

TechnologySignerProxyPassword StoreMessage LogMetadata ServicesDatabaseConfiguration ClientUser Interface frontendREST APIMonitorEnvironmental Monitoring ServiceOperational Monitoring BufferOperational Monitoring Services
Java 21XXXXXXXXXX
CX
LogbackXXXXXXXXX
gRPCXXXXXXX
Embedded Jetty 9X
JavascriptX
PostgreSQL 12+[3]XX
PAMX
Liquibase 4X
systemdXXXX
PKCS #11[2]X
Dropwizard Metrics 4X
Spring Boot 3X
Vue.js 3X
Npm 8X
Node 18X
TypescriptX
OpenAPI 3XX
Embedded Tomcat 10X
GNU Privacy GuardX

[2] The use of hardware cryptographic devices requires that a PKCS #11 driver is installed and configured in the system.

[3] PostgreSQL version varies depending on operating system. By default, RHEL7 uses version 9, RHEL8 - 10, RHEL9 - 13, Ubuntu 20.04 - 12, Ubuntu 22.04 - 14. User may also use external PostgreSQL server.

See [ARC-SS] for the Security Server details.

6 Operational monitoring daemon technologies

Table 5 presents the list of the technologies used in the operational monitoring daemon and the mapping between technologies and monitoring daemon components. Note: OP-monitoring daemon is an additional component of the X-Road.

Table 5. Technology matrix of the operational monitoring daemon

TechnologyOp. Mon.
Daemon Main
Op. Mon.
Database
Op. Mon.
Service
Configuration
Client
Java 21XXXX
LogbackXXXX
gRPCXX
PostgreSQL 12+[1]XX
Liquibase 4XX
Dropwizard Metrics 4XX
systemdXX

[1] PostgreSQL version varies depending on operating system. By default, RHEL7 uses version 9, RHEL8 - 10, RHEL9 - 13, Ubuntu 20.04 - 12, Ubuntu 22.04 - 14. User may also use external PostgreSQL server.

See [ARC-OPMOND] for the operational monitoring daemon details.