OpenSya Persistence is an early-stage runtime that powers OpenSya and can be used in any TypeScript application. Its core execution model is usable, but the following boundaries remain intentional.
Persistence does not generate or apply migrations. buildTable() constructs
runtime Drizzle tables only. Keep physical schema changes in a migration tool.
Only the Drizzle PostgreSQL adapter is included. Introspection targets the
public schema and does not reconstruct foreign keys, relations, defaults,
check constraints or detailed PostgreSQL type parameters.
Population is explicit and direct. Nested paths, relation-specific filtering, sorting, pagination and projections are not implemented. Relation metadata is not inferred from PostgreSQL foreign keys.
Registered table names and returned entities are inferred. Filter field names, operator values and creation/update inputs are still represented by generic query structures rather than fully table-specific input types.
json columns infer as unknown; applications must narrow or explicitly type
their domain JSON shape.
Only forward first/after pagination is available. Backward pagination is not
implemented, and values used in cursor ordering cannot be null.
The engine carries user, tenantId and arbitrary context, but does not yet
enforce operation policies, row-level authorization or mandatory tenant filters.
The Domain Event outbox provides at-least-once delivery. Consumers must be idempotent. Persistence supplies the processor contract but no Kafka, RabbitMQ, Redis or webhook transport.