meldestelle/README.md
2025-07-17 15:17:31 +02:00

1.5 KiB

Meldestelle - Self-Contained Systems Architecture

This is a Kotlin JVM backend project implementing a Self-Contained Systems (SCS) architecture for an equestrian sport management system.

Architecture Overview

The project follows Domain-Driven Design (DDD) principles with clearly separated bounded contexts:

Implemented Modules

  • shared-kernel - Common domain types, enums, serializers, validation utilities, and base DTOs
  • master-data - Master data management (countries, regions, age classes, venues)
  • member-management - Person and club/association management
  • horse-registry - Horse registration and management
  • api-gateway - Central API gateway aggregating all services

Module Dependencies

api-gateway
├── shared-kernel
├── master-data
├── member-management
└── horse-registry

horse-registry
├── shared-kernel
└── member-management

member-management
├── shared-kernel
└── master-data

master-data
└── shared-kernel

Technology Stack

  • Kotlin JVM - Primary programming language
  • Ktor - Web framework for REST APIs
  • Exposed - Database ORM
  • PostgreSQL - Database
  • Kotlinx Serialization - JSON serialization
  • Gradle - Build system

Getting Started

Prerequisites

  • JDK 17 or higher
  • PostgreSQL database

Building the Project

./gradlew build

Running the API Gateway

./gradlew :api-gateway:run

Documentation

See the docs/ directory for detailed architecture documentation and diagrams.