Almacenamiento SQL
El soporte de almacenamiento SQL proporciona una implementación directa utilizando database/sql. Está optimizado para PostgreSQL y SQLite, utilizando marcadores de posición posicionales y la sintaxis “ON CONFLICT”.
Configuración
Sección titulada «Configuración»import idempotencySQL "github.com/fco-gt/gopotency/storage/sql"
// Pasa tu conexión *sql.DB y el nombre de la tablastore := idempotencySQL.NewSQLStorage(db, "idempotency_records")Esquema de la Base de Datos
Sección titulada «Esquema de la Base de Datos»Necesitas crear dos tablas. Aquí tienes el SQL para PostgreSQL/SQLite:
-- Tabla de registrosCREATE TABLE idempotency_records ( key TEXT PRIMARY KEY, data BYTEA, -- o BLOB para SQLite expires_at TIMESTAMP);
-- Tabla de bloqueosCREATE TABLE idempotency_records_locks ( key TEXT PRIMARY KEY, expires_at TIMESTAMP);Características
Sección titulada «Características»- Sin Dependencia de ORM: Utiliza la biblioteca estándar
database/sql. - Operaciones Atómicas: Aprovecha las operaciones a nivel de fila para una seguridad distribuida.
- Personalizable: Puedes especificar el nombre de la tabla base durante la inicialización.