Solution Strategy
1. Modularization
Every distinct aspect is modelled into a single vertical. The current verticals are:
- dcis-users
-
Account Management for users of the system.
- dcis-arbitration
-
Petitions and Arbitration for all users, gaming and Torg Asset data.
- dcis-operatives
-
Handling of Player Characters
- dcis-gaming
-
Table and Campaign management
- dcis-threats
-
Monsters and Adversaries
- torg-codex
-
Tables of Torg. A reference guide to Torg Items, perks, cosms, …
- dcis-libraries
-
Java Libraries for common utilities, asynchronous data transfer and local data storage for data managed by other SCSes.
- dcis-commons
-
Web asset SCS for all SCS in the system.
- dcis-discord
-
Discord Bot for the whole system.
- Core Earth News
-
A nice in game version of a news outlet to provide access to campaign data and missions.
2. Single Sign On
The system holds no authentication data. It will be connected via OpenIDConnect to external identity providers (like keycloak). The users are specified via their external user. Internally they get an UUID which maps to the (Issuer, User) tuple of the external provider.
3. Frontend and backend integration
The systems use frontend integration methods for the UI.
Needed communication between the backends (data synchronization, event distribution) are handled via a messaging infrastructure. The broker [ADR-003] used will be a rabbitMQ handling AMQP queues and topics.
We heavily rely on self-contained systems [SCS] as promoted by INNOQ.
The asynchronous data replication is addressed in section Handling asynchronously transfered data. This decision is documented in [ADR-005].