Skip to content

Latest commit

 

History

History
82 lines (56 loc) · 2.57 KB

README.md

File metadata and controls

82 lines (56 loc) · 2.57 KB

sakila-microservices

Sakila REST API Microservices (Sample Project)

❗ This project is work in progress.

Gradle Build

This project provides rental operations for the Sakila DVD Rental Store using microservices architecture. It is implemented with hexagonal architecture(ports and adapters architecture) and reactive programming. It's based on the Sakila sample database and serves as a example resource.

Monolith version is go to: https://github.com/codejsha/spring-rest-sakila

Table of Contents

Getting Started

Requirements

  • Kotlin 1.8
  • Java 17
  • Gradle 8
  • MySQL 8

Libraries and Plugins

For a complete list, see the gradle/libs.versions.toml file.

  • Spring WebFlux
  • Spring Data R2DBC
  • Google gRPC

Architecture

The following diagram shows the architecture of the Sakila DVD Rental Store. The diagram is based on the C4 model.

sakila-container

Each service has its own database.

sakila-db-container

Services

customer-application payment-application rental-application store-application catalog-application location-application

Roadmap

  • Implement all services
  • Add gRPC, Kafka communication
  • Add tests for REST Docs and OpenAPI spec
  • Add Netflix Conductor for orchestration
  • Add Helm charts for each service
  • Add Tekton CI/CD pipeline
  • Add Argo CD resources for GitOps
  • Add Istio service mesh
  • Add ServiceMonitor and PrometheusRule for monitoring
  • Add security

Sample Data

The sample data comes from the Sakila sample database by MySQL and is intended for learning and testing purposes. It features a relational database model for a DVD rental store company that contains data related to films, actors, customers, rentals, and more.

References