Skip to content
@kresil

Kresil - Kotlin Resilience

Kresil is a fault-tolerance library designed to help developers build resilient applications in Kotlin Multiplatform.

Kresil

Kresil

Kresil is a Kotlin Multiplatform library for fault-tolerance, inspired by Resilience4j for Java and Polly for .NET. The library offers methods to enhance operations with resilience mechanisms in a functional style, using higher-order functions (decorators) while providing a concise API. Additionally, Kresil offers extensions for Ktor as plugins.

Resilience Mechanisms ⚙️

Some of the intended resilience mechanisms are:

  • 🔄 Retry: Repeats failed executions;
  • Circuit Breaker: Temporarily blocks possible failures;
  • Rate Limiter: Limits executions per period;
  • ⏱️ Time Limiter: Limits duration of execution;
  • 🚧 Bulkhead: Limits concurrent executions;
  • 💾 Cache: Memorizes a successful result;
  • 🛟 Fallback: Defines an alternative value to be returned or action to be executed on failure.

Resilience Types 🔖

The resilience mechanisms can be divided in two categories, based on where they execute:

  • Reactive: Mitigates impact from failures (after);
  • 🛡️Proactive: Prevents failures from happening (before).

Note

This project began as a BSc degree thesis and is supported by detailed academic documentation. The project's design and implementation were guided by extensive research and formal proposals. You can explore the report or browse all related documents here.

Pinned Loading

  1. kresil kresil Public

    Kotlin Multiplatform fault-tolerance library with Ktor integration

    Kotlin 4

  2. experiments experiments Public

    Contains experiments exploring the Kotlin Multiplatform development, the Ktor framework and the Resilience4j library

    Kotlin

Repositories

Showing 4 of 4 repositories
  • kresil Public

    Kotlin Multiplatform fault-tolerance library with Ktor integration

    kresil/kresil’s past year of commit activity
    Kotlin 4 Apache-2.0 0 5 0 Updated Aug 23, 2024
  • experiments Public

    Contains experiments exploring the Kotlin Multiplatform development, the Ktor framework and the Resilience4j library

    kresil/experiments’s past year of commit activity
    Kotlin 0 Apache-2.0 0 0 0 Updated Aug 20, 2024
  • .github Public
    kresil/.github’s past year of commit activity
    0 0 0 0 Updated Aug 20, 2024
  • project-documentation Public

    Outlines the founding proposal and technical documentation of the project

    kresil/project-documentation’s past year of commit activity
    TeX 0 0 0 0 Updated Aug 20, 2024

Top languages

Loading…

Most used topics

Loading…