Odyssey

Multi-threaded PostgreSQL connection pooler and request router with per-route pooling rules.

Provider
default
Category
Data
Properties · 2 set by this component
propertytypevaluesrequiredkind defaultthis component
clientMax · component propertyinteger—no0inherited
hedging · advancedboolean—nofalseinherited
loadShedding · advancedboolean—nofalseinherited
managedboolean—nofalseinherited
poolMode · component propertyenumsession | transactionyes—inherited
poolSharded · advancedboolean—nofalseinherited
poolSize · component propertyinteger—no0inherited
poolingboolean—notrue▸ true
requestCoalescing · advancedboolean—nofalseinherited
routingenumnone | shard-key | lookupnonone▸ none
scatterGather · advancedboolean—nofalseinherited
targetSessionAttrs · component propertyenumany | read-write | read-only | prefer-standbyno—inherited
workers · component propertyinteger—no—inherited
Rules that apply · 0

Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.

No rule reads this kind yet. That is a gap, not a guarantee.
Use it in a design
nodes:
  - { id: "odyssey", component: "odyssey" }
Other Database proxy products · 13
Source
# yaml-language-server: $schema=../../schema/component.schema.json
# Odyssey: multi-threaded PostgreSQL connection pooler and request router from Yandex.
# Rules configuration: `pool` is required with no default, pool_size and client_max
# default to 0 (unlimited), target_session_attrs picks primary or standby storage hosts.
schemaVersion: "1"
type: "component"
id: "odyssey"
kind: "database-proxy"
provider: "default"
docs: "https://github.com/yandex/odyssey/blob/master/docs/configuration/rules.md"
defaults:
  pooling: true
  routing: "none"
properties:
  poolMode:
    type: "enum"
    values: ["session", "transaction"]
    required: true
  poolSize:
    type: "integer"
    default: 0
  clientMax:
    type: "integer"
    default: 0
  targetSessionAttrs:
    type: "enum"
    values: ["any", "read-write", "read-only", "prefer-standby"]
  workers:
    type: "integer"

The same page as markdown, for an agent: /catalogue/components/odyssey.md