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.