Skip to content

Clarify Flow Routing Design #1

Description

@theakashsarkar

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions