콘텐츠로 이동
Leader 문서0.4

실행 API

최신 안정판 Leader 0.4.0 릴리스 기준

각 interface의 lambda, 반환형, scheduler, 취소 경계를 연결해 이해합니다.

LeaderElector() -> T를 받아 T?를 반환합니다. AsyncLeaderElector() -> CompletableFuture<T>를 받아 CompletableFuture<T?>를 돌려줍니다. VirtualThreadLeaderElector() -> TVirtualFuture<T?>를 사용합니다. SuspendLeaderElector는 suspend lambda를 받아 T?를 반환합니다. 그룹 interface도 블로킹과 suspend 형태를 제공합니다.

애플리케이션 경계에 맞는 interface를 고릅니다. 블로킹 백엔드를 coroutine으로 감싼다고 I/O가 non-blocking이 되지 않습니다. 임의로 thread를 바꾸면 Redisson 연장처럼 thread-bound 소유권이 깨질 수도 있습니다. 백엔드가 제공하는 native interface를 우선합니다.

LeaderSlot은 lock name과 audit leader id를 함께 전달합니다. 기본 bridge overload는 경고를 남기며 백엔드가 해당 식별자를 실제로 기록했는지 증명할 수 없습니다. 백엔드 구현은 slot과 result overload를 함께 재정의해야 합니다. bridge 경로의 Elected.leaderId가 null이 아니라고 가정하지 않습니다.