We are excited to announce the release of a Spring Boot starter for Trouble Maker.

This new auto-configuration allows Spring Boot applications to easily enable Trouble Maker. Trouble Maker randomly takes down services during normal business hours in an effort to test stability and automated recovery. It also provides an ad hoc console to test application durability on demand.

This auto-configuration starter can be found open source on Github here: https://github.com/in-the-keyhole/khs-spring-boot-troublemaker-starter. The Trouble Maker project can be found here: https://github.com/in-the-keyhole/khs-trouble-maker.

Why Choose Failure?

A successful Microservices platform requires a durable and resilient environment that supports the ability to continuously deploy multiple services. Instead of waiting for a failure to occur and seeing how durable and resilient your platform is, Trouble Maker allows you to be proactive and make failure a USE CASE of your platform.

Trouble Maker helps organizations to maintain stable and durable platforms when implementing Microservices platforms and Java web applications.

About Trouble Maker

Trouble Maker produces common troublesome issues in your platform so you can test stability and automatic recovery processes. Errors are produced in accordance with settings or performed on-demand via the dashboard. It is not dependent upon the cloud and is prime for use within enterprise environments.

Random Kill

Trouble Maker is a Java Spring Boot application that communicates with a client service that has a small servlet registered with a Java API-based service application. By default, Trouble Maker accesses Eureka to discover services, and based upon a cron task, randomly selects a service to kill (i.e. shut down).

By default, when started, once per day Monday through Friday, a random service will be selected and killed. This option can be configured or turned off.

Trouble Dashboard

The Trouble Maker Dashboard has an event log, in addition to allowing services to be selected and killed on-demand. It invokes other troublemaking issues against these services. From the dashboard, a service can be selected and the following troubles applied:

KILL – Terminate the service (i.e. system exit will be performed). Tests fail over and alert mechanisms.

– Terminate the service (i.e. system exit will be performed). Tests fail over and alert mechanisms. LOAD – The selected service will be invoked with numerous blocking API calls. Blocking time and number of threads can be specified. This emulates how service acts under API load.

– The selected service will be invoked with numerous blocking API calls. Blocking time and number of threads can be specified. This emulates how service acts under API load. MEMORY – The selected service will consume memory until HEAP memory is met, then will block for a specified time. This can be used to emulate how system performs under low memory conditions.

– The selected service will consume memory until HEAP memory is met, then will block for a specified time. This can be used to emulate how system performs under low memory conditions. EXCEPTION – The selected service will throw an exception. This tests the exception handling, logging, handling, and reporting mechanisms of the service.

Github Links

The goal is for this is to help organizations that are implementing Microservices to implement stable and durable platforms. Please feel free to make any suggestions or submit pull requests.

For more on this tool, see https://keyholelabs.com/trouble-maker/.

Trouble Maker is an open source project hosted on Github that can be found here: https://github.com/in-the-keyhole/khs-trouble-maker.

This auto-configuration starter can be found open source on Github here: https://github.com/in-the-keyhole/khs-spring-boot-troublemaker-starter.