Liking cljdoc? Tell your friends :D

wagoe.platform.ports.database

The database port: what a database adapter must provide.

Lived at wagoe.platform.ports.database until BOU-303, which is where a port cannot live — every module's persistence layer had to reach into platform's shell to name it, and .wagoe/check-ports.edn carried the 20 sites that did as its largest burn-down entry.

Unlike the router abstraction ADR-037 removed, this seam is real: four adapters implement it (postgresql, mysql, sqlite, h2), and the differences between them — dialect, boolean representation, JDBC URL shape — are exactly what the methods below name.

For executing queries rather than describing a database, see wagoe.platform.database.

Protocol defining the common interface for database adapters.

This protocol abstracts database-specific behavior while allowing common database operations to be implemented in a shared core namespace. Each database type (SQLite, PostgreSQL, MySQL, H2) implements this protocol to provide database-specific functionality.

Design Philosophy:

  • Keep protocol narrow - prefer common behavior in core
  • Only include methods that differ between databases
  • Database-agnostic operations belong in core namespace
  • Type conversions use shared utilities where possible
The database port: what a database adapter must provide.

Lived at `wagoe.platform.ports.database` until BOU-303,
which is where a port cannot live — every module's persistence layer had to
reach into platform's shell to name it, and `.wagoe/check-ports.edn` carried
the 20 sites that did as its largest burn-down entry.

Unlike the router abstraction ADR-037 removed, this seam is real: four
adapters implement it (postgresql, mysql, sqlite, h2), and the differences
between them — dialect, boolean representation, JDBC URL shape — are exactly
what the methods below name.

For executing queries rather than describing a database, see
`wagoe.platform.database`.

Protocol defining the common interface for database adapters.

This protocol abstracts database-specific behavior while allowing 
common database operations to be implemented in a shared core namespace.
Each database type (SQLite, PostgreSQL, MySQL, H2) implements this 
protocol to provide database-specific functionality.

Design Philosophy:
- Keep protocol narrow - prefer common behavior in core
- Only include methods that differ between databases
- Database-agnostic operations belong in core namespace
- Type conversions use shared utilities where possible
raw docstring

wagoe.platform.ports.http

The HTTP server port.

Routing is not a port: modules emit Reitit route data and the platform compiles it (ADR-037). The server is — a Ring handler is handed to whatever implements this protocol.

The HTTP server port.

Routing is not a port: modules emit Reitit route data and the platform
compiles it (ADR-037). The server is — a Ring handler is handed to whatever
implements this protocol.
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close