Skip to content

A demonstration project for technics and patterns

Notifications You must be signed in to change notification settings

McKratt/greetings

Repository files navigation

Demonstration Project

Builds

https://github.com/McKratt/greetings/actions

Greetings UI

https://sonarcloud.io/dashboard?id=greetings-ui
https://sonarcloud.io/dashboard?id=greetings-ui
https://sonarcloud.io/dashboard?id=greetings-ui
https://sonarcloud.io/dashboard?id=greetings-ui

Greetings Service

https://sonarcloud.io/dashboard?id=greetings-service
https://sonarcloud.io/dashboard?id=greetings-service
https://sonarcloud.io/dashboard?id=greetings-service
https://sonarcloud.io/dashboard?id=greetings-service

Stat Service

https://sonarcloud.io/dashboard?id=greetings-stat-service
https://sonarcloud.io/dashboard?id=greetings-stat-service
https://sonarcloud.io/dashboard?id=greetings-stat-service
https://sonarcloud.io/dashboard?id=greetings-stat-service

Architecture overview

architecture overview
Figure 1. architecture overview

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