We will cover here how to do DAO integration test when you have spring boot application with PostgreSQL DB and liquibase for schema versioning , last time we have explained how to do the same without liquibase using embedded PostgreSQL in this post but this time we will do the same but using docker with test containers which will apply your liquibase changes and making sure you DAO integration test has the same environment as production database environment if you are using docker for your data base in production .Continue reading
We will go through specific module(Resilience4j-Retry) from Resilience4j which is a fault tolerance library designed for Java8 and functional programming and it is lightweight library with minimal dependencies (mainly vavr)
When you retry , there are many cases for example :
- cross micro services communication for remote systems calls which most likely will need circuit breaker logic added as well
- if you have business or functional logic that need to get a consistent end state and most likely it is asynchronous Flow
Here we will explain to use Junit 5 and Mockito 2 with Spring boot 2 when it comes to unit testing and integration tests .
Here we will go through how to use embedded PostgreSQL in you local development environment plus how to use it for DAO integration/unit testing if you have are using PostgreSQL as your production database , you DAO testing should use the same database as your production one to have behavior consistency and same environment precondition.
Now here we will share some possible designs when you use the spring boot event sourcing toolkit starter plus some remarks and action points .
What are some possible designs using the toolkit for event sourcing and CQRS services :
Now I will share a working service example of how to use the event sourcing toolkit starter in practice , in the example I will show the following:
- How to configure and use the event sourcing starter with spring boot web application
- How to implement your aggregate entity using the API of the toolkit
- How to define your entity flow using the execution flow API
- How to configure your entity
- How to configure your Akka system with spring boot
- How to call your aggregates from your service and connect that to your DDD service REST API
- How to use Google Protobuf to serialize your events instead of Java serialization
- The usage of Apache Ignite as your persistence event store with Akka persistence
- In Part 4 we sill cover the summary and possible designs plus some special remarks
Now we will continue in part 2 to explain the starter itself into more details :