Please check the TechStack.md file for details.
This application is a demo application to show the power of Kotlin in a Reactive Programming environment.
We will also look at how to work with R2DBC and make comparisons between a typical Spring Boot Application and a Spring Boot WebFlux application with JMeter.
In this example the domain revolves around the registration of concert dates, the artists and the show they belong to. We want to be able to record the concert data and make it the more efficient as possible. For this Demo we will use WebFlow
This project is also the official support project of my article on medium:
Note that for the moment I'm keeping Kotest at version 4.4.0. This is to avoid an issue with MPP implementation. Check the Issues document for more details
For further developments please have a look at branch feature/research_and_development
- concert-demos-rest-service-webflux - WebFlux implementation of the Sprig Boot Back-End process for the concerts website.
- concert-demos-rest-service-mvc - MVC blocking implementation of the Sprig Boot Back-End process for the concerts website.
- concert-demos-data - Common data model
Part of this project is to perform benchmarking tests. For this, we will be using JMeter by the Apache Software Foundation.
Please find all JMeter files in jmeter
- To build from scratch:
make build-docker
- To just run:
make dcup
Always have Docker Environment running
You can make tests for this application using the Swagger UI at:
- MVC Non-Reactive Solution (blocking) Swagger UI
- WebFlux MVC Reactive Solution (non-blocking) Swagger UI
POST
payload example:
{
"name": "Hey mama",
"lyrics": "Hey mama"
}
POST
payload example:
{
"name": "Nicky Minaj",
"gender": "FEMALE",
"careerStart": 1000,
"birthDate": "a date",
"birthCity": "Port of Spain",
"country": "Trinidad en Tobago",
"keywords": "Rap"
}
sdk install 17-open
sdk use 17-open
- Reactive Manifesto
- Spring Boot Kotlin
- Reactive relational databases with R2DBC and Spring
- R2DBC
- Lesson 11 - Date and Time in Kotlin - Creating and formatting
- Spock Example
- JMeter
- JMeter's Concurrency Thread Group
- JMeter's Plugin Manager
- Blaze Meter
- How to increase the max connections in postgres?
- Where are my postgres *.conf files?