Skip to content

Proposal: add instant database provisioning for Memori BYODB #463

@bb7133

Description

@bb7133

Summary

Memori already supports BYODB through user-provided databases such as PostgreSQL, MySQL, CockroachDB, OceanBase, and TiDB.

This proposal is to add a small database provisioning layer for BYODB, starting with providers such as TiDB Cloud Zero and Neon Launchpad.

The goal is to make the BYODB setup flow easier for developers and AI agents: Memori can provision a database, receive a connection string, initialize the existing schema, and return a ready-to-use Memori instance.

This should not introduce new storage drivers. Provisioning should only create or retrieve a database connection; storage should continue using the existing MySQL/TiDB and PostgreSQL driver paths.

Motivation

BYODB is flexible, but today users still need to manually create a database, copy the connection string, configure TLS if needed, and then initialize Memori.

For agent and developer-tool workflows, it would be useful if Memori could handle this setup step directly while still keeping the BYODB architecture intact.

Examples of provider candidates:

Both can return normal SQL connection strings, which means Memori can reuse its existing storage drivers after provisioning.

Proposed API

For Python:

mem = Memori.provision(provider="tidb-zero", build=True)

For CLI:

memori provision --provider tidb-zero
memori provision --provider neon-launchpad

A provider could return:

ProvisionResult(
    provider="tidb-zero",
    family="mysql",
    dsn="...",
    connect_args={...},
    claim_url="...",
    expires_at="...",
    metadata={...},
)

Memori would then pass the DSN to the existing storage layer and run the normal schema build path.

Important details

  • Keep provisioning separate from storage drivers.
  • Cache provisioned results locally to avoid creating duplicate databases on reruns.
  • Redact credentials in logs and CLI output.
  • Surface claim_url and expires_at clearly when the provider returns them.
  • Keep provider implementations isolated because provider APIs may evolve.

Non-goals

  • This is not a replacement for Memori's hosted storage service.
  • This is not a new TiDB Zero or Neon-specific storage driver.
  • TiDB native vector/HNSW support should be handled separately as a future storage optimization.
  • Authenticated cloud providers such as CockroachDB, Supabase, or Atlas can remain normal BYODB targets unless there is demand for provider-specific provisioning later.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions