Skip to content

SureshKumar-HelloWorld/spring-boot-microservices-course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

08c1394 · Apr 10, 2025

History

84 Commits
Apr 10, 2025
Apr 3, 2025
Feb 21, 2025
Apr 3, 2025
Apr 3, 2025
Feb 24, 2025
Feb 22, 2025
Apr 3, 2025
Mar 29, 2025
Feb 21, 2025
Feb 21, 2025
Feb 22, 2025

Repository files navigation

Spring Boot Microservices Development

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

BookStore Microservices Architecture

image

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 Rest API's, 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, PostgreSQL, 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
  • Kubernetes Basics
  • Deployment to Kubernetes
  • Local Development Setup
  • Install Java 21. Recommend using SDKMAN for managing Java versions.
  • Install Docker Desktop
  • Install IntelliJ IDEA or any of your favorite IDE
  • Install Postman or any REST Client
  • Other Learning Resources

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages