Skip to content

McKratt/greetings

Repository files navigation

Demonstration Project

Builds

Build Status

Greetings UI

Quality Gate Status

Maintainability Rating

Vulnerabilities

Coverage

Greetings Service

Quality Gate Status

Maintainability Rating

Vulnerabilities

Coverage

Stat Service

Quality Gate Status

Maintainability Rating

Vulnerabilities

Coverage

Architecture overview

graph TD
%% Define nodes
    greetings_ui["greetings-ui: Greetings User Interface"]
    greetings["greetings-service: Create Greetings Messages"]
    greetings_db["Greetings DB: PostgreSQL"]
    stats["greetings-stats-service: Records Statistics"]
    stats_db["Statistics DB: PostgreSQL"]
    kafka["Kafka: greeting_topic"]
%% Relationships
    greetings_ui -->|" GET/POST/PUT "| greetings
    greetings_ui -->|" GET /stats "| stats
    greetings -->|" Reads/Writes "| greetings_db
    stats -->|" Reads/Writes "| stats_db
    greetings -->|" Produces Events "| kafka
    stats -->|" Consumes Events "| kafka
    stats -->|" GET /greetings/{id} "| greetings
Loading

List of patterns / concepts /technics demonstrated

  • Hexagonal Architecture
  • Multimodules Spring Boot Project
  • REST API with Spring MVC (greeting service) and Spring Web Reactive (stat service)
  • Kafka Consumer (stat service) / producer (greeting service)
  • Reactive implementation (stat service)
  • Test : Unit tests with Mockito and AssertJ
  • Test : Integration tests with Spring Slice Tests Annotations
  • Test : Integration tests with @EmbeddedKafka
  • Test : Integration tests with Wiremock and Spring Cloud Contract Stub Runner
  • Test : CDC tests with Pact
  • Test : BDD tests with Cucumber and JUnit 5

TODOs

  • Implement Error Handling in API to customize responses
  • Implement Outbox pattern for greeting-producer
  • Create a UI to interact with APIs
    • Create an SSE endpoint to send events to UI

About

A demonstration project for technics and patterns

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •