blob: 20b9dd14960809398b2b61f5389fb932b6c56fe6 [file]
/*
* 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);
}