routing#
Configuration classes for read/write replica routing.
RoutingConfig#
- class advanced_alchemy.config.routing.RoutingConfig[source]#
Bases:
objectRead/Write routing configuration.
This configuration enables automatic routing of database operations to different engine groups (e.g., writer, reader, analytics).
- primary_connection_string: str | None = None#
Connection string for the primary (write) database. Mapped to
engines[default_group].- Type:
Legacy
- read_replicas: list[str | EngineConfig]#
Read replica connection strings or configs. Mapped to
engines[read_group].- Type:
Legacy
- engines: dict[str, list[str | EngineConfig]]#
Dictionary mapping group names to lists of engine configs.
Example
{ "writer": ["postgres://primary"], "reader": ["postgres://rep1", "postgres://rep2"], "analytics": ["postgres://warehouse"] }
- __init__(primary_connection_string=None, read_replicas=<factory>, engines=<factory>, default_group='default', read_group='read', routing_strategy=RoutingStrategy.ROUND_ROBIN, enabled=True, sticky_after_write=True, reset_stickiness_on_commit=True)#
- Parameters:
- Return type:
None
- routing_strategy: RoutingStrategy = 1#
Strategy for selecting engines within a group.
ReplicaConfig#
- advanced_alchemy.config.routing.ReplicaConfig#
alias of
EngineConfig
RoutingStrategy#
- class advanced_alchemy.config.routing.RoutingStrategy[source]#
Bases:
EnumStrategy for selecting engines from a group.
Determines how the routing layer chooses which engine to use when multiple engines are configured for a routing group.
- ROUND_ROBIN = 1#
Cycle through engines in order.
- RANDOM = 2#
Select engines randomly.