Skip to content
Modules

Modules

Modules

Failover is composed of focused modules. The starter pulls everything in — declare individual modules only when you need fine-grained dependency control.

flowchart TD
    STARTER[failover-spring-boot-starter]
    AC[failover-spring-boot-autoconfigure]
    DOMAIN[failover-domain]
    CORE[failover-core]
    ASPECT[failover-aspect]
    IMM[failover-store-inmemory]
    CAF[failover-store-caffeine]
    JDBC[failover-store-jdbc]
    ASYNC[failover-store-async]
    MT[failover-store-multitenant]
    RES[failover-execution-resilience]
    SCHED[failover-scheduler]
    SCAN[failover-observable-scanner]
    MIC[failover-observable-micrometer]

    STARTER --> AC
    AC --> DOMAIN
    AC --> CORE
    AC --> ASPECT
    AC --> IMM
    AC --> ASYNC
    AC --> SCHED
    AC --> SCAN
    MIC --> SCAN
  • Core Modules


    failover-domain · failover-core · failover-aspect — annotation, interfaces, and the AOP interceptor.

    Core internals

  • JDBC Store


    Production-grade persistence — H2, PostgreSQL, MySQL, MariaDB, Oracle, SQL Server.

    JDBC store

  • Caffeine Store


    Fast in-process cache backed by Caffeine — ideal for single-node deployments.

    Caffeine store

  • Async Store


    Non-blocking write decorator using virtual-thread executor — zero read-path latency.

    Async store

  • Multi-Tenant Store


    TABLE_PREFIX or SCHEMA strategy routes each request to the correct tenant store.

    Multi-tenant

  • Resilience


    Resilience4j circuit-breaker wraps upstream calls. Trips fast on repeated failures.

    Resilience integration

  • Scheduler


    Expiry-cleanup (hourly) and observable-report (daily) scheduled tasks.

    Scheduler

  • Observability


    Startup scanner, Micrometer counters, and health indicator — zero extra config.

    Observability

Full module reference table
Module Purpose
failover-domain @Failover annotation, Referential, ReferentialAware, Metadata
failover-core All interfaces + default implementations
failover-aspect Spring AOP @Around interceptor
failover-store-inmemory ConcurrentHashMap store — dev/test only
failover-store-caffeine Caffeine-backed in-process store
failover-store-jdbc JDBC store — H2, PostgreSQL, MySQL, Oracle, MariaDB
failover-store-async Non-blocking write decorator (virtual-thread executor)
failover-store-multitenant TABLE_PREFIX / SCHEMA per-tenant routing
failover-execution-resilience Resilience4j circuit-breaker integration
failover-scheduler Expiry-cleanup + observable-report schedulers
failover-observable-scanner Startup scanner for @Failover methods
failover-observable-micrometer Micrometer counters + health indicator

Next Steps

  • Core — key interfaces and the default handler chain
  • Store Types — choosing a backing store