Files

34 lines
1.5 KiB
TeX

\chapter{Resiliencia y chaos}
\label{ch:resiliencia}
\section{Objetivo}
Verificar degradaci\'on controlada y recuperaci\'on sin corrupci\'on de datos cuando fallan dependencias.
\section{Casos}
\begin{longtable}{@{}p{1.8cm}p{3.5cm}p{4.0cm}p{3.2cm}@{}}
\caption{Casos de resiliencia.}\\
\toprule
\textbf{ID} & \textbf{Fallo inyectado} & \textbf{Expectativa} & \textbf{Recuperaci\'on} \\
\midrule
\endhead
CH-01 & Redis down mid-run & Extracci\'on async falla o fallback sync & Stack healthy al reiniciar Redis \\
CH-02 & MinIO down mid-job & Create job 502 / PutObject warning & Job failed expl\'icito; BD consistente \\
CH-03 & Agent crash mid-download & Job no queda zombie indefinido & Cancel o failed; sin doble claim \\
CH-04 & Extraction container kill & Gateway health \texttt{degraded} & Tras restart, health ok \\
CH-05 & Token inv\'alido masivo & 401 sin saturar workers & Logs claros \\
CH-06 & Imaging DNS & Agent \texttt{fatal\_error} & Evento visible en Desktop \\
\bottomrule
\end{longtable}
\section{Modos de fallo conocidos (bot)}
\begin{itemize}
\item Worker offline al crear job $\rightarrow$ 409.
\item Excel vac\'io $\rightarrow$ 400.
\item Heartbeat $>$45\,s $\rightarrow$ worker \texttt{offline}.
\item Cancel pending vs running (flag \texttt{cancel\_requested}).
\item PDF corrupto $\rightarrow$ reintento o fallo por radicado.
\end{itemize}
\section{Criterio global}
Tras chaos, \texttt{GET /health/live} debe volver a OK sin intervenci\'on manual (salvo dependencias externas como Imaging/LLM).