Harden your app in two easy steps

Say you want to protect your Spring-based service with

  • a circuit breaker that trips after three consecutive exceptions, and retries after 30 seconds
  • a concurrency throttle that rejects requests once there are 50 concurrent requests
  • a rate limiter that rejects anything beyond a client's first 5,000 requests in a given hour

With Kite that's no problem.

Step 1. Create your guards

<?xml version="1.0" encoding="UTF-8"?>
<beans ...>
    <kite:annotation-config />
    <kite:circuit-breaker id="circuitBreaker" exceptionThreshold="3" timeout="30000" />
    <kite:concurrency-throttle id="concurrencyThrottle" limit="50" />
    <kite:rate-limiting-throttle id="rateLimiter" limit="5000" />
</beans>

Step 2. Annotate your service

@Service
@Transactional
public class MessageServiceImpl implements MessageService {

    @GuardedBy({ "concurrencyThrottle", "rateLimiter", "circuitBreaker" })
    public List<Message> getMessages() { ... }
}