Skip to content

vertyll/veds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

309 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Assumptions

A microservices-based architecture following principles:

  • Domain-Driven Design.
  • Event-Driven Architecture.
  • Hexagonal Architecture.
  • Separation of Concerns.
  • Choreography pattern for service coordination.
  • Saga pattern for distributed transactions.
  • Outbox pattern for reliable event publishing.
  • SOLID.

Architecture Graph

Architecture graph

Technology Stack

  • Back-end: Spring Boot, Kotlin, Gradle Kotlin DSL (a separate build for each service).
  • Database: PostgreSQL (a separate instance for each service).
  • Message Broker: Apache Kafka KRaft (Zookeeper-less).
  • Identity Provider: Keycloak (OAuth2 / OpenID Connect).
  • API Documentation: OpenAPI (Swagger).
  • Containerization: Docker / Podman.
  • Authentication: Keycloak JWT + refresh tokens (HttpOnly secure cookie via BFF pattern).
  • Testing: JUnit, Testcontainers.
  • Static Analysis: ktlint, Detekt.
  • Documentation: Dokka for code docs.
  • Infrastructure as Code: Terraform for Kafka topic provisioning.
  • Build and Dependency Management: Gradle with composite builds for modularization.
  • Schema Management: Apache Avro with Schema Registry for versioning and compatibility.

Documentation

Releases

No releases published

Packages

 
 
 

Contributors