Punto de venta. Freelance, 2021. Dos APIs independientes, documentadas con Swagger.

Bioscenter

Un sistema de punto de venta construido como dos APIs independientes: licenciamiento centralizado por un lado, operación local de la tienda para inventario, usuarios y transacciones por el otro.

Rol
Freelance
Año
2021
APIs
02
Docs
Swagger
Perfil de GitHub Índice

El problema

Una tienda que no puede vender cuando se cae la conexión no es un punto de venta. Pero un licenciamiento que solo vive en la caja tampoco es control.

Diseñé el sistema como dos APIs independientes, licenciamiento centralizado y operación local cubriendo inventario, usuarios y transacciones, y documenté ambas con Swagger.

RESTSwaggerLicensingOffline-first

Se sigue vendiendo aunque la conexión no siga

La operación local no depende de alcanzar el servicio de licencias, así que una caída de conexión detiene la sincronización y no la tienda.

Las licencias siguen bajo control central

Separar las dos cosas no significó renunciar al control central. Significó decidir exactamente cuánto tiempo puede una caja funcionar sola.

Decisiones y el precio que pagué por ellas

Dos APIs en lugar de una

Separar el licenciamiento de la operación local permitió que cada tienda siguiera vendiendo cuando se caía la conectividad, sin renunciar al control central de las licencias.

Trade-off aceptado

Dos servicios que desplegar, documentar y versionar, y un camino de reconciliación que diseñar para todo lo que pasó mientras una caja estuvo desconectada.

Documentar ambas superficies con Swagger

Una entrega freelance solo es real si la siguiente persona puede leer el contrato sin leer la implementación.

Trade-off aceptado

La especificación es una cosa más que se queda obsoleta salvo que se mantenga honesta junto al código.