Instantáneas concretas del sistema en un momento dado (no el modelo, sino ejemplos reales de instancias y sus relaciones), útiles para verificar que el diagrama de clases es coherente con datos que efectivamente ocurren en producción.
Instantánea 1 — Proyecto DobleYo con sus servicios
Un cliente con un proyecto activo, dos costos asociados, un monitor y un briefing aprobado.
classDiagram
class `cliente1 : Client` {
id = 7
name = "Café DobleYo"
email = "contacto@dobleyo.co"
company = "DobleYo Café"
}
class `proyecto1 : Project` {
id = 12
slug = "dobleyo"
title = "DobleYo ERP"
status = "activo"
visible = true
clientId = 7
}
class `servicio1 : ProjectService` {
id = 34
category = "hosting"
provider = "vercel"
cost = 20.00
billingCycle = "monthly"
payer = "client_reimbursable"
billedToClient = 25.00
}
class `servicio2 : ProjectService` {
id = 35
category = "domain"
provider = "namecheap"
renewalDate = "2026-11-02"
autoRenew = true
}
class `monitor1 : Monitor` {
id = 5
name = "DobleYo — home"
url = "https://dobleyo.co"
lastStatus = "up"
lastResponseMs = 184
sslExpiresAt = "2026-09-14"
}
class `briefing1 : Briefing` {
id = 3
title = "Rediseño ERP v2"
status = "aprobado"
agreedBudget = 1800.00
deadline = "2026-08-15"
}
`cliente1 : Client` "1" --> `proyecto1 : Project` : posee
`proyecto1 : Project` "1" --> `servicio1 : ProjectService` : consume
`proyecto1 : Project` "1" --> `servicio2 : ProjectService` : consume
`proyecto1 : Project` "1" --> `monitor1 : Monitor` : monitoreado por
`proyecto1 : Project` "1" --> `briefing1 : Briefing` : documentado en Instantánea 2 — Pago con evento duplicado + IP bloqueada
Un pago aprobado cuya bitácora conserva el evento duplicado descartado (CU-12), junto a una IP bloqueada automáticamente y la anomalía que la originó (CU-14).
classDiagram
class `pago1 : Payment` {
id = 210
reference = "PF-2026-0210"
idempotencyKey = "a1c9-...-77f2"
amountCents = 5000000
currency = "COP"
status = "approved"
provider = "wompi"
version = 2
}
class `evento1 : PaymentEvent` {
id = 501
type = "transaction.updated"
eventStatus = "PENDING"
duplicate = false
outOfOrder = false
}
class `evento2 : PaymentEvent` {
id = 502
type = "transaction.updated"
eventStatus = "APPROVED"
duplicate = false
outOfOrder = false
}
class `evento3 : PaymentEvent` {
id = 503
type = "transaction.updated"
eventStatus = "APPROVED"
duplicate = true
}
class `ip1 : BlockedIp` {
ip = "203.0.113.45"
reason = "sqli_probing"
source = "auto"
expiresAt = "+24h"
}
class `anomalia1 : SecurityAnomaly` {
id = 88
kind = "spike"
zScore = 4.2
baseline = 12
observed = 61
notified = true
acknowledged = false
}
`pago1 : Payment` "1" --> `evento1 : PaymentEvent` : primer evento
`pago1 : Payment` "1" --> `evento2 : PaymentEvent` : aplica estado final
`pago1 : Payment` "1" --> `evento3 : PaymentEvent` : descartado (duplicado)