| /* | |
| * Copyright 2023 CeresDB Project Authors. Licensed under Apache-2.0. | |
| */ | |
| package io.ceresdb; | |
| import java.util.concurrent.CompletableFuture; | |
| import io.ceresdb.models.RequestContext; | |
| /** | |
| * A RPC router for CeresDB. | |
| * | |
| */ | |
| public interface Router<Req, Resp> { | |
| /** | |
| * For a given request return the routing decision for the call. | |
| * | |
| * @param request request | |
| * @return a endpoint for the call | |
| */ | |
| CompletableFuture<Resp> routeFor(final RequestContext reqCtx, final Req request); | |
| } |