Bulkhead pattern in action.
It is a application that reproduces de problem that the pattern solves and also shows the behavior of the application after apply the pattern.
This is the video.
Using Jmeter I put some load on a Tomcat server.
After to simulate a problem in one application's service, the Server starts to run out of available resources and soon It can not process all the incoming requests. As a result the entire application fails due to a particular service error.
Clinet A and B are affected by the problem on service 2.
After to use an implementation of bulkhed pattern, the application keeps working well, just the client (client A) that depends on the service that fails is affected.
Docker image
The application uses a docker images which has installed Grafana and Influxdb. You can download the image from this project:
https://hub.docker.com/r/philhawthorne/docker-influxdb-grafana/
docker run -d --name docker-influxdb-grafana -p 3003:3003 -p 3004:8083 -p 8086:8086 -v /path/for/influxdb:/var/lib/influxdb -v /path/for/grafana:/var/lib/grafana philhawthorne/docker-influxdb-grafana:latest
docker start docker-influxdb-grafana
Grafana
The dashboard file is under the folder grafana.
Username: root Password: root
JMeter
The .jmx file used to create the requests generators is under the folder jmeter.