Five-Project Series

Microservices Notification System Design you own this product

prerequisites
intermediate Java • basic Spring
skills learned
implement a Spring Boot-based microservice • implement the Registry and Discovery capability using Spring Cloud Registry and Consul • configure the Spring Cloud Gateway which routes the requests to different backend microservices • implement Fault Tolerance frameworks to make the microservices resilient • implement tracing and monitoring of the microservices
Vamshi Kesetty
5 weeks · 6-8 hours per week average · BEGINNER

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


In this series of liveProjects, you’ll build a complete message notification system from scratch using Spring Boot and a microservices architecture. Stepping into the role of a software engineer working for a bank, you’ll design and implement a solution to handle the high-volume traffic of the bank’s notification management platform. You’ll get hands-on experience building microservices around event handling concepts and implementing service resiliency patterns. Complete every project in this series, and you’ll be ready to start creating loosely coupled and highly cohesive microservices.

These projects are designed for learning purposes and are not complete, production-ready applications or solutions.

here's what's included

Project 1 Implement Core Notification Services

In this liveProject, you’ll build the foundational notification services for a bank’s new notification management platform. Rather than build one single monolithic service, you’ll establish four separate microservices to handle notification preferences, notification formatting, the notification gateway that dispatches emails or SMS messages, and the application that orchestrates all of these functions. You’ll leverage Spring Boot and other Java services to help you create these microservices, which will form the bedrock of an entire notification platform.

Project 2 Register the Notification Microservices

In this liveProject, you’ll implement Service Discovery and Registry Modules so that the services of a bank’s notification management platform can dynamically register and be available for other services to discover at runtime. You’ll make use of the Spring Cloud Registry to register your services before you configure healthy endpoints and set up discovery.

Project 3 Configure a Spring Cloud Gateway

In this liveProject, you’ll set up and configure a Spring Cloud Gateway to act as an entry point for applications to connect to a notification management platform. Spring Cloud Gateway provides a flexible way of routing requests based on criteria, and focuses on cross-cutting concerns such as security, resiliency, and monitoring. It’s the perfect API gateway to implement complexity separately from the client.

Project 4 Apply Fault Tolerance Patterns

In this liveProject, you’ll leverage the Spring Cloud Resiliency libraries to improve the fault tolerance of the microservices that make up a notification management platform. You’ll work to ensure that each microservice can easily recover from failure, avoiding cascading failures and guaranteeing that other microservices in the system will be unaffected by any individual failure.

Project 5 Monitor with Spring Cloud

In this liveProject, you’ll use powerful libraries like Spring Cloud Library Sleuth, Zipkin, and Actuator to help find and debug an error in the microservices of a notification management platform. The distributed nature of microservices makes them challenging to debug, and finding where a problem occurs can be maddening. You’ll set up monitoring services that can use correlation IDs to link together transactions across multiple services, aggregate log data from various services into a single searchable source, and visualize the flow of a user transaction across multiple services.

book resources

When you start each of the projects in this series, you'll get full access to the following book for 90 days.

choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Microservices Notification System Design project for free

project author

Vamshi Krishna Kesetty
Vamshi is a technology and digital evangelist working in IT consulting for the past 11 years. He loves to explore new technologies and always passionate about next gen digital technologies. He started his career as an integration developer using the Oracle Fusion Middleware Stack and progressively moved to a microservices-based tech stack. Currently, He is working as a domain architect for a leading bank in Singapore. He has vast experience building microservices using Spring Boot, AWS, JAX-RS, Rest Easy, etc. He also have mentored members of his organization on the design and development of Spring Boot-based microservices. He always emphasize to clients the pros and cons of leveraging a microservices architecture before making an informed decision.

Prerequisites

This liveProject is for intermediate Java programmers who know the basics of Core Java and Spring Boot. To begin this liveProject, you will need to be familiar with the following:


  • Intermediate Java
  • Beginner Spring Boot
  • Intermediate Spring Framework
  • Intermediate Maven
  • Beginner Swagger
  • Beginner H2 Database library
  • Beginner Thymeleaf
  • Beginner microservices
  • Beginner Service Resiliency Spring Boot

you will learn

In this liveProject, you’ll learn to implement microservices using Spring.


  • Use of @RestController Annotation
  • Use Lombok for Getter and Setters of your model/entities classes
  • Use of SpringBoot Starters
  • Structuring your code to contain controller, entities, service, formatters, model, repositories and classes for better readability
  • Use Dependency Injection with Autowired Services
  • Thymeleaf for the HTML translations
  • Use @EnableDiscoveryClient for look up of services from Consul
  • Configure spring.cloud.consul.host and spring.cloud.consul.port for consul integration
  • Use of @Configuration Annotation for configuring the routes in the API Gateway Service
  • Create a bean to configure the routes
  • Dependency management
  • Use of @CircuitBreaker Annotation for configuring the circuit breaker pattern
  • Use of @Bulkhead Annotation for configuring the Bulkhead pattern
  • Use of @Retry Annotation for configuring the retry’s pattern
  • Use of @RateLimiter Annotation for configuring the RateLimiter pattern

features

Self-paced
You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.