Flow Routing Design Clarification
I’d like to better understand the intended design for flow routing before starting an implementation.
I noticed that FlowResolver and FlowResolution are already defined in the gateway module:
public interface FlowResolver {
Optional<FlowResolution> resolve(
GatewayRuntimeEntry gateway,
GatewayRequestContext requestContext
);
}
and:
public record FlowResolution(String flowKey) {}
However, I’m not yet clear on how a request is expected to be mapped to a Flow.
Could you clarify the intended behavior for the following?
-
What exactly does a Flow represent in Funchole?
-
How should a request be resolved to a Flow?
- Gateway hostname?
- Request path?
- HTTP method?
- A combination of these?
-
Where should the flowKey come from?
-
Is the Flow-to-route mapping expected to be stored in PostgreSQL?
-
Is a Flow associated with a single Gateway, or can the same Flow be exposed through multiple Gateways?
-
Should routing initially support exact paths only, or should path parameters/prefix matching be considered?
I’d like to understand the intended architecture before implementing anything so that the contribution follows the project's design direction.
Flow Routing Design Clarification
I’d like to better understand the intended design for flow routing before starting an implementation.
I noticed that
FlowResolverandFlowResolutionare already defined in the gateway module:and:
However, I’m not yet clear on how a request is expected to be mapped to a Flow.
Could you clarify the intended behavior for the following?
What exactly does a Flow represent in Funchole?
How should a request be resolved to a Flow?
Where should the
flowKeycome from?Is the Flow-to-route mapping expected to be stored in PostgreSQL?
Is a Flow associated with a single Gateway, or can the same Flow be exposed through multiple Gateways?
Should routing initially support exact paths only, or should path parameters/prefix matching be considered?
I’d like to understand the intended architecture before implementing anything so that the contribution follows the project's design direction.