|
Asynchronous over synchronous communication for all sub-domains
|
Stefan Bente |
|
|
Branch strategy during development
|
tzaika, SohleDelfin6504, und akosmehl |
|
|
Conventions for REST return codes and error handling |
jalue |
|
|
Conventions for REST URIs |
Stefan Bente |
|
|
All documentation (apart from the decision log itself) has to be stored in a Github wiki, in repo evatool-backend
|
Stefan Bente und Peter Klein |
|
|
We maintain a high-level global "Domain Story Telling" model |
kruck und Duzun |
|
|
A DTO pattern should be used in the APIs
|
Stefan Bente |
|
|
UUIDs are to be used for Entity IDs (PKs and API IDs)
|
Stefan Bente |
|
|
Rules regarding Git-Merge (Merge-Workflow)
|
tzaika |
|
|
Events need to be defined in a public package within the domain
|
jalue |
|
|
Logging Strategy
|
SohleDelfin6504 |
|
|
Some basic styleguide for domain modelling
|
Stefan Bente |
|
|
In the backend, we will follow the "Modulith" architecture style
|
Stefan Bente |
|
|
The package structure should reflect the DDD layer architecture
|
Stefan Bente |
|
|
The preferred way of synchronous communication between modules are api calls
|
jalue |
|
|
In the backend, Spring is used as predominant programming framework
|
Stefan Bente |
|
|
In the backend, Java is used as programming language
|
Stefan Bente |
|
|
JSON
|
jalue und SohleDelfin6504 |
|
|
Relational database vs. NO-SQL DB
|
TheBuro und FalahSama |
|
|
Access security through REST-API authentication methods
|
TheBuro |
|
|
Configuration database state dev and prod
|
TheBuro und FalahSama |
|
|
MYSQL used as database
|
TheBuro und FalahSama |
|
|
Database version control
|
TheBuro und FalahSama |
|
|
API-Documentation is done using Swagger |
FalahSama |
|
|
Web MVC with manual link
|
SohleDelfin6504 |
|
|
API Style is REST Level 3
|
jalue und SohleDelfin6504 |
|
|
The Uri style is lower camel case
|
jalue |
|
|
API Testing |
hbuhl |
|
|
Tool Chain for Build Pipeline - GitHub Actions vs. Jenkins
|
tzaika und hbuhl |
|
|
Containerization - VM vs. Docker
|
tzaika |
|
|
Local Debugging using Docker |
tzaika |
|
|
Event Testing
|
hbuhl |
|
|
Choice of Hosting provider
|
tzaika |
|
|
Maven is used as build tool
|
mhallweg |
|
|
Definition of Quality Gates in Sonarcloud
|
mhallweg |
|
|
SonarLint and SonarCloud are used as code-quality tools
|
mhallweg |
|
|
Testing Automation with GitHub Actions
|
hbuhl |
|
|
Communication pattern for events is "Full-Payload"
|
kruck und Duzun |
|
|
Research method to define the domain is Domain Story Telling
|
kruck und Duzun |
|
|
Spring eventing is used as Eventing Solution
|
akosmehl |
|
|
Single module project
|
SohleDelfin6504 |
|
|
Development model is "Single Repo"
|
SohleDelfin6504 und Stefan Bente |
|
|
Source code and test structure (and how to run applications and tests) |
hbuhl |
|
|
API Specification for Team "Analysis" |
FalahSama |
|
|
Domain model for team "Analysis"
|
mhallweg und FalahSama |
|
|
Event Specification for Team "Analysis" |
mhallweg |
|
|
API Specification for Team "Impact" |
hbuhl und tzaika |
|
|
Domain model for team "Impact"
|
hbuhl und tzaika |
|
|
Event Specification for Team "Impact" |
hbuhl und tzaika |
|
|
API Specification for Team "Requirements" |
SohleDelfin6504 und TheBuro |
|
|
Domain model for team "Requirements"
|
jalue |
|
|
Event Specification for Team "Requirements" |
jalue |
|
|
API Specification for Team "Variants" |
Duzun und akosmehl |
|
|
Domain model for team "Variants"
|
kruck und Duzun |
|
|
Event Specification for Team "Variants" |
kruck |
|