Skip to content

quytvm/spring-boot-microservices

This branch is 8 commits behind sivaprasadreddy/spring-boot-microservices-course:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

32d6b93 · May 15, 2024

History

27 Commits
May 15, 2024
May 3, 2024
May 3, 2024
May 15, 2024
May 3, 2024
May 3, 2024
May 6, 2024
May 3, 2024
May 3, 2024
Apr 3, 2024
Apr 3, 2024
Apr 3, 2024
Apr 4, 2024
May 3, 2024
Apr 5, 2024
Apr 5, 2024
May 1, 2024
May 3, 2024

Repository files navigation

Spring Boot Microservices Course

This repository contains the source code for the Spring Boot Microservices Course.

Spring Boot Microservices course

We will build a BookStore application using Spring Boot, Spring Cloud, and Docker.

BookStore Microservices Architecture

Modules

  • catalog-service: This services provides REST API for managing catalog of products(books).

    TechStack: Spring Boot, Spring Data JPA, PostgreSQL

  • order-service: This service provides the REST API for managing orders and publishes order events to the message broker.

    TechStack: Spring Boot, Spring Security OAuth2, Keycloak, Spring Data JPA, PostgreSQL, RabbitMQ

  • notification-service: This service listens to the order events and sends notifications to the users.

    TechStack: Spring Boot, RabbitMQ

  • api-gateway: This service is an API Gateway to the internal backend services (catalog-service, order-service).

    TechStack: Spring Boot, Spring Cloud Gateway

  • bookstore-webapp: This is the customer facing web application where customers can browse the catalog, place orders, and view their order details.

    TechStack: Spring Boot, Spring Security OAuth2, Keycloak, Thymeleaf, Alpine.js, Bootstrap

Learning Objectives

  • Building Spring Boot REST APIs
  • Database Persistence using Spring Data JPA, Postgres, Flyway
  • Event Driven Async Communication using RabbitMQ
  • Implementing OAuth2-based Security using Spring Security and Keycloak
  • Implementing API Gateway using Spring Cloud Gateway
  • Implementing Resiliency using Resilience4j
  • Job Scheduling with ShedLock-based distributed Locking
  • Using RestClient, Declarative HTTP Interfaces to invoke other APIs
  • Creating Aggregated Swagger Documentation at API Gateway
  • Local Development Setup using Docker, Docker Compose and Testcontainers
  • Testing using JUnit 5, RestAssured, Testcontainers, Awaitility, WireMock
  • Building Web Application using Thymeleaf, Alpine.js, Bootstrap
  • Monitoring & Observability using Grafana, Prometheus, Loki, Tempo (Membership)
  • Kubernetes Basics (Membership)
  • Deployment to Kubernetes (Membership)

Local Development Setup

Other Learning Resources

About

Spring Boot Microservices Course

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 84.1%
  • HTML 12.4%
  • JavaScript 3.5%