
In this lecture students are informed of everything that they will learn. Most notably, a deployment & implementation architectural viewpoint is provided to indicate everything that students will develop in this course.
This lecture explains what microservices are, and describes the core principles that should be followed when implementing microservices.
Students will learn about the CQRS & Event Sourcing patterns as the foundational knowledge that they are going to need to structure and code the user and bank account microservices.
This lecture introduces students to the Axon Platform and key Axon concepts that are derived from the Domain-Driven Design, CQRS and Event Sourcing patterns.
This lecture provides students with two options for installing Docker on Mac / Windows. It also provides students with insight on how they can access their deployed containers when they opt for Docker Toolbox.
This lecture details all the prerequisites that should be installed before we can start creating our Spring Boot microservices.
Students will learn how to run Axon in Docker.
Students will learn how to run MongoDB in Docker.
This lecture introduces students to the Spring Initializr and how it can be used to generate a Spring Boot application with all of its required dependencies.
Students will learn how to do the basic project setup for the user microservices.
Students will learn how to add all the required Axon dependencies to their microservices projects, and how to configure Axon to use a MongoDB event storage engine.
This lecture explains what students will learn in the User Microservices section
In this lecture students will create all the domain models that are required for the user microservices.
Students are going to create all the user command objects.
Students are going to create all the user event objects.
Students are going to create the user aggregate. At the completion of this lecture, students should have all the knowledge that is required to create an aggregate with its required command handler and event sourcing methods.
Students are going to create the user event handler interface and implementation. At the completion of this lecture students should have the confidence to create event handlers that populates and updates the read database from consumed events. Students will also learn how to create a UserRepository, that extends the MongoRepository, which will be used to populate, update and delete from the user read database.
Students are going to create the RegisterUserController that will expose a RESTful endpoint for registering users with the user command API.
Students are going to make an HTTP request to the RegisterUserController to register their very first user. Students will also see how the UserRegisteredEvent is stored in the Event Store, and how the EventHandler will consume the UserRegisteredEvent to persist a new user record in the User Read Database.
Students are going to create the user query objects.
Students are going to create the user query handler interface and implementation that will invoke the user repository to query the user read database.
Students are going to create all the user query controllers to expose the RESTful endpoints of the user query API.
In this lecture, students will be introduced to Spring Security, OAuth2 and JSON Web Tokens (JWT).
Students are going to generate the OAuth2.0 project with Spring Initializr, add the required dependencies and mark the application as an authorization server.
Students will create a UserRepository, that extends the MongoRepository, which will be used to find a user record in the user read database by username. Students are also going to create the user service interface that implements the UserDetailService, and a user service implementation that will invoke the user repository to query the user read database to find the user record based on the provided username.
Students will learn how to configure the OAuth2 authorization server.
Students are going to secure the user command API with the resource server.
Students will be introduced to API gateways and the Spring Cloud Gateway.
Students will create an API gateway using Spring Cloud, and they will configure API gateway routes for the user microservices.
Students will test if they can make HTTP calls via the API Gateway to the user microservices.
This lecture provides an introduction to the Bank Account Microservices section, and in particular, what students will learn and build in this section.
In this lecture students will generate the bank account microservice projects using the Spring Intializr.
Students will setup the package structures and configuration of the bank account microservices.
In this lecture students will create the bank account domain model.
Students are going to create all the bank account command objects.
Students are going to create all the bank account event objects.
Students are going to create the bank account aggregate with all of its required command handler and event sourcing methods.
Students are going to create the bank account event handler interface and implementation, and the initial account repository.
In this lecture students are going to create a REST controller that will provide an HTTP endpoint for opening a new bank account.
Students are going to create a REST controller for depositing funds into a bank account.
Students are going to create a REST controller for withdrawing funds from a bank account.
Students are going to create a REST controller for closing a bank account.
Students are going to create the bank account query objects.
Students are going to create the bank account query handler interface and implementation that will invoke the bank account repository to query the bank account read database.
Students are going to create a bank account lookup controller to expose a RESTful endpoint to query the bank account details.
Students will be introduced to containerization and Docker.
Students are going to learn how to containerize their very first microservice. They will learn how to create a Dockerfile for a Spring Boot Microservice, how to build a Docker image and how to run a Docker image as a container. They will also learn how to push a Docker image to a Docker Hub Repository, and how to pull an image from a Docker Hub Repository.
Students will learn how to deploy Docker images using docker-compose and how to deploy multiple instances of a microservice using stack deploy and Docker Swarm.
In this course you will not just learn how to create a small REST API, but you will learn how to create microservices that comply with best practice design principles, including CQRS, Event Sourcing and Domain-Driven Design.
By the end of this course you will know how to create loosely coupled Spring Boot microservices that each have their own database. You will also learn how to structure microservices projects in the correct way, deploy your microservices as Docker containers, and you will create your own OAuth2.0 authorization server and API gateway.
This course is a practical hands on course that will help you to master Spring Boot microservices with CQRS & event sourcing!
What students are saying about this course?
5-Stars: "excellent course, beautifully explained, delivers what is expected, no beating around the bush straight to the point. some suggestions: - color of font in the terminal needs to be legible -If you can include Saga in this would be very helpful" - Sanket Jadhav
5-Stars: "This is one of the best courses at Udemy which explaining microservices, CQRS and event sourcing with a step by step real-world implementation. I definitely recommend it." - Ismail Aksoy
5-Stars: "I took the precursor to this course (also by Sean Campbell, and just as excellent). Sean is an amazing teacher and he explains Microservices-related concepts really well, and in just 7 hours. Perfect!" - Akoni Tee
5-Stars: "Excellent content coverage! The effort put into this course is highly appreciated Sean... Kudos :)" - Donovan Mabunda
5-Stars: "Very Amazing course, thank you so much for this course, very useful" - Nurul Hadi