Spring Boot Microservices Cqrs Saga Axon Framework

Learn to build distributed Event-driven Microservices, CQRS, Event Sourcing, SAGA, Transactions

Last updated 2022-01-10 | 4.5

- Event-Driven Microservices
- Basics of Spring Cloud
- Axon Framework

What you'll learn

Event-Driven Microservices
Basics of Spring Cloud
Axon Framework
Eureka Discovery Service
CQRS Design Pattern
Spring Cloud API Gateway
SAGA Design Pattern
Event Based Messages
Transactions

* Requirements

* Java

Description

In this video course, you will learn how to build business logic that spans several distributed Spring Boot Microservices

This course is designed for beginners and we will start from the basics of Microservices, Spring Boot, and Spring Cloud.

You will learn how to create your very first Spring Boot Microservice and how to handle HTTP requests. You will then learn how to run multiple instances of your Microservice behind an API Gateway and how to make them discoverable. This will help you scale up your microservice up and down as needed.

This video course will also cover transactions across multiple distributed Microservices and how to roll back changes if an error took place. Transactions is an advanced topic and to be able to build transactional microservices this video course will teach you a few more design patterns. Starting from the very beginning, you will learn how to develop event-based Microservices that are absolutely location transparent.

You will learn how to use a modern and very popular framework for building event-based Microservices called Axon. Axon Framework is based on design principles such as CQRS(Command Query Responsibility Segregation) and DDD(Domain Driven Design). You will learn how to build event-based Microservices using Axon Framework and how to use CQRS and Event Sourcing in your Microservices.

Finally, you will learn about the Saga design pattern and how to group multiple operations into a single transaction. This will help you build business logic that spans multiple distributed Microservices and roll back changes if one operation fails.

All from the very beginning, to make these advanced topics easier.



Who this course is for:

  • Beginner Java developers interested in learning about Microservices

Course content

25 sections • 164 lectures

Introduction Preview 03:51

Source code Preview 00:29

Microservice vs Monolithic application Preview 07:11

Microservices Architecture Overview Preview 07:39

Event-Driven Microservices Preview 05:16

Transactions in Microservices Preview 04:31

Choreography-Based Saga Preview 05:51

Orchestration-Based Saga Preview 04:28

Frameworks that we can use Preview 02:53

(CQRS)Command Query Responsibility Segregation Preview 07:08

Event Sourcing Preview 07:11

Axon Framework and Axon Server Preview 03:00

What if I have questions? Preview 00:35

Introduction Preview 01:25

Download and run Docker Desktop Preview 04:15

Spring Tool Suite Preview 02:41

Download and Install Postman HTTP client Preview 02:19

Introduction Preview 00:08

Creating a new project. Products Microservice. Preview 05:31

Creating a Rest Controller class Preview 04:40

Handle HTTP POST, GET, PUT and DELETE Requests Preview 04:43

Trying how it works Preview 01:47

Introduction Preview 04:29

Creating new project Preview 03:32

Configure project as Eureka Server Preview 05:56

Registering Microservices with Eureka Preview 06:02

Trying how it works Preview 02:25

Introduction Preview 03:44

Creating Spring Cloud API Gateway project Preview 05:24

Automatic Routing with Resource Locator Preview 05:41

Random Port Number Preview 05:23

Starting Multiple instances of Products Microservice Preview 06:12

Trying how load balancing work Preview 05:35

Introduction Preview 00:20

Download and run Axon Server as JAR application Preview 04:07

Axon Server configuration properties Preview 07:05

A complete list of Axon Server configuration properties Preview 00:04

Run Axon Server in a Docker container Preview 08:24

Running Axon Server in Docker Blog Post Preview 00:13

Start, Stop, Delete Axon Server Docker Container By ID Preview 04:21

Configure Axon Server running in Docker Container Preview 02:49

Introduction Preview 00:11

Accept HTTP Request Body Preview 04:34

Trying how it works Preview 00:52

Adding Axon Framework Spring Boot Starter Preview 00:56

Creating a new Command class Preview 04:26

Creating a new CreateProductCommand object Preview 01:51

Send Command to a Command Gateway Preview 04:11

Product Aggregate - Introduction Preview 02:10

Creating ProductAggregate class Preview 02:11

Validate the CreateProductCommand Preview 01:15

Creating ProductCreatedEvent Preview 02:53

Apply and Publish the Product Created Event Preview 03:03

@EventSourcingHandler Preview 03:07

Adding Additional Dependency Preview 01:42

Trying how it works Preview 03:34

Previewing Event in the EventStore Preview 02:37

Introduction Preview 00:40

Adding Spring Data JPA & H2 dependencies Preview 03:02

Configure database access in the application.properties file Preview 04:29

Creating an ProductEntity Preview 05:10

Creating ProductRepository Preview 03:52

Creating Products Events Handler/Projection Preview 02:14

Implementing @EventHandler method Preview 01:41

Trying how it works Preview 02:28

Preview Product record in a database Preview 03:25

Introduction Preview 00:50

Creating Rest Controller Preview 02:21

Refactor Command API Rest Controller Preview 01:55

Get Products web service endpoint Preview 02:47

Querying the QueryGateway Preview 05:03

Creating ProductsQueryHandler Preview 01:27

Implementing the findProducts() method Preview 03:29

Trying how it works Preview 01:28

Introduction to Bean Validation Preview 03:47

Bean validation. Enable Bean Validation. Preview 02:51

Bean validation. Validating Request Body. Preview 05:41

Hibernate Validator Documentation Preview 00:06

Trying how the Request Body Validation works. Preview 02:55

Introduction to Message Dispatch Interceptor Preview 01:20

Creating a new Command Interceptor class Preview 05:14

Register Message Dispatch Interceptor Preview 02:03

Trying how the Command Interceptor works. Preview 05:52

Set Based Consistency - Introduction Preview 05:15

Creating Product Lookup Entity Preview 03:29

Creating Product Lookup Repository Preview 02:24

Creating a ProductLookupEventsHandler Preview 05:44

Persisting information into a ProductLookup table Preview 02:08

Updating MessageDispatchInterceptor Preview 03:27

Trying how the Set base validation works Preview 04:03

Introduction Preview 06:07

Creating a centralized Error Handler class Preview 05:02

Trying how the centralized error handler class works Preview 02:26

Return custom error object Preview 03:24

Handle the @CommandExecutionException Preview 03:25

Trying to handle the @CommandExecutionException Preview 03:30

@ExceptionHandler Preview 03:13

Creating the ListenerInvocationErrorHandler Preview 03:48

Register the ListenerInvocationErrorHandler Preview 03:27

Trying how transaction rollback works Preview 07:42

Introduction Preview 02:17

Saga class structure overview Preview 03:41

Creating OrderSaga class Preview 01:55

@SagaEventHandler method for the OrderCreatedEvent Preview 02:43

Creating a new Core API module Preview 03:37

Adding Core project as a dependency to OrdersService Preview 01:23

Creating the ReserveProductCommand Preview 01:41

Publish the ReserveProductCommand Preview 02:17

Handle the ProductServeCommand in the ProductsService Preview 03:31

Publish the ProductReservedEvent Preview 02:41

Updating Products projection Preview 01:53

Handle the ProductReservedEvent in Saga Preview 01:14

Trying how it works Preview 05:38

Creating the ProcessPaymentCommand Preview 01:50

Publish the ProcessPaymentCommand Preview 03:07

Assignment Preview 01:34

Solution Preview 00:43

Handle the PaymentProcessedEvent Preview 01:23

Create and publish the ApproveOrderCommand Preview 02:31

Handle the ApproveOrderCommand Preview 01:23

Create and publish the OrderApprovedEvent Preview 03:18

Handle the OrderApprovedEvent and update Orders database Preview 02:23

Handle the OrderApprovedEvent in OrderSaga class Preview 02:21

Trying how it works Preview 02:57

Introduction Preview 03:16

Creating the CancelProductReservation command Preview 02:01

Publish the CancelProductReservationCommand Preview 04:10

Handle the CancelProductReservation command in ProductsService Preview 01:06

Create and publish the ProductReservationCancelledEvent Preview 01:27

Handle the ProductReservationCancelledEvent Preview 04:55

Create and publish the RejectOrderCommand Preview 02:11

Handle the RejectOrderCommand on the query side Preview 00:43

Create, publish and handle the OrderRejectedEvent Preview 04:22

Trying how it works Preview 09:59

Introduction Preview 04:36

Creating a DeadlineManager object Preview 02:49

Schedule a deadline Preview 05:30

Handle deadline Preview 03:30

Cancel deadline Preview 04:02

Trying how it works Preview 03:32

Introduction Preview 03:06

Creating the FindOrderQuery Preview 01:12

Creating the QueryHandler method Preview 03:47

Sending a Subscription Query Preview 03:59

Emit an Update to the subscription query Preview 04:32

Trying how it works Preview 04:35

Introduction Preview 06:11

Configure Snapshotting Preview 03:39

Trying how it works Preview 07:39

Introduction Preview 05:33

@ResetHandler Preview 02:20

Replay Events Endpoint Preview 02:52

Starting the Replay of Events Preview 02:58

Trying how it works Preview 05:57