Failure Matrix
| Falha | Comportamento observado | Proteção |
|---|---|---|
| Streams instance crash | task reassignment após rebalance | consumer group / rebalance |
| local state apagado | restore via changelog | changelog Kafka |
| ALO crash | duplicate processing possível | EOS ou deduplicação |
| broker leader crash | nova eleição e retry | replication / ISR |
| poison Avro | fail ou skip conforme handler | exception handler / DLQ |
| late event | descarte após grace | window semantics |
| partitioner incompatível | join pode não acontecer | co-partitioning correto |
| EOS transaction crash | output abortado invisível a read_committed | EOS V2 |
Esta matriz contém apenas comportamentos demonstrados nos labs. payment.rejected é uma rejeição de negócio estruturalmente válida; poison Avro é um erro de desserialização e segue outra política.
Block 3 — Kafka Connect / CDC
| Falha | Comportamento observado | Proteção |
|---|---|---|
| Connect transformation error | dlq-proof foi para kafkapay.connect.dlq; task continuou RUNNING e headers __connect.errors.* foram preservados | DLQ + tolerância configurada |
| PostgreSQL outage > 60 s | connector recuperou automaticamente, sem restart manual | WAL + replication slot + retry do runtime |
| Outbox transaction rollback | pagamento ficou APPROVED; Outbox e marker Kafka ausentes | mesma transação PostgreSQL |
| Debezium offline após DB commit | row persistiu e apareceu em payment.events após restore | WAL/slot e retenção operacional |
Raw APPROVED → APPROVED | raw op=u existiu; Curated Streams classificou IRRELEVANT_UPDATE | comparar before/after com REPLICA IDENTITY FULL |
Estas provas não tornam ALO exactly-once, não eliminam side effects externos e não substituem modelação explícita de eventos de negócio.