Muchos (1 mutex hoy, RFC-021 para fan-out completo)
Muchos
Modelo de auth
Ninguno (in-process)
Bearer token
API keys + IAM
Almacenamiento
Cualquier URI tuyo
Cualquier URI tuyo
Bucket manejado
Multi-tenant
Sí (un namespace por tenant)
Sí (un daemon por tenant)
First-class
Modelo de pago
Almacenamiento + tu compute
Almacenamiento + tu compute
Medición por namespace
¿Self-host?
Sí
Sí
No
Preguntas que hacerse
¿Dónde vive el dato y quién más lo necesita?
Si solo tu único servicio Python lee o escribe alguna vez,
Embebido es la opción de menor fricción. Si varios servicios
necesitan el mismo namespace y quieres un endpoint autoritativo,
Servidor te da ese boundary de red.
¿El fan-out de lectura es tu cuello de botella hoy?namidb-server serializa las solicitudes hoy detrás de un Mutex
de tokio (RFC-021
lo elimina). Si necesitas escala horizontal de lectura ahora, corre
varios procesos de namidb-server contra el mismo bucket — cada
uno puede servir lecturas desde la misma versión de manifest. Solo
uno tendrá permiso de commitear escrituras.
¿Quieres operar infraestructura?Cloud es la respuesta correcta cuando la respuesta es “no”.
Multi-tenant desde el día uno, scale-to-zero, sin horarios de flush
que tunear, sin imágenes Docker que actualizar.
¿Los tenants son first-class en tu app?
Embebido y Servidor te dejan hacer “un namespace por tenant” de
forma manual. Cloud lo convierte en la unidad de facturación,
aislamiento y scale-to-zero.
Se pueden mezclar
Mismo motor, mismo layout de bucket, mismo URI s3://….
Un patrón común:
Embebido en tu aplicación para el hot path de lectura.
Un namidb-server en la misma VPC para analítica ad-hoc desde un
notebook o desde la laptop de un compañero, ambos apuntando al mismo
namespace.
namidb-server va a fencear al writer embebido si intenta mutar al
mismo tiempo — el single-writer-per-namespace se aplica vía CAS del
manifest, sin importar por dónde llegó el writer.