Ishga tayyor · Event, outbox va cache consistency

Daraja: Ilg'or

Asinxron oqimda event yo‘qolishi, duplicate va eskirgan cache bilan ishlash.

Tushuntirish

## Ishdagi vazifa DB commit va broker publish orasidagi uzilishni transactional outbox bilan yopish: biznes yozuvi va outbox event bir transactionda saqlanadi, worker keyin publish qiladi. Delivery odatda at-least-once bo‘lgani uchun consumer idempotent bo‘ladi. Event nomi sodir bo‘lgan fakt, schema esa versiyalanadigan contractdir.

## Cache Cache-aside o‘qishda miss bo‘lsa DBdan olib yozadi; update paytida cache invalidation tartibi belgilanadi. TTL yagona consistency yechimi emas. Cache key tenant/user doirasini o‘z ichiga oladi, stampede uchun locking yoki request coalescing ko‘riladi. Redis ishlatishdan oldin real latency va load o‘lchanadi.

## Ishga tayyor mezon Crash, duplicate va out-of-order event test senariysida bor.

Kod misoli

@Transactional
void confirm(Order order) {
  orders.save(order.confirm());
  outbox.save(Event.of("OrderConfirmed", order.id()));
}
// Consumer: UNIQUE(event_id) bilan qayta ishlashni bir martalik qiling.

Keng tarqalgan xatolar

Mashqlar

Teglar: events, cache, ishga-tayyor, career-06

Interaktiv ko'rinish (viktorina, izohlar, tarix)