Files
IPSExtractor/docs/plan_pruebas/diagrams/patrones.tex
T

41 lines
1.6 KiB
TeX

\begin{figure}[H]
\centering
\resizebox{\textwidth}{!}{%
\begin{tikzpicture}[
font=\footnotesize,
node distance=0.45cm and 0.55cm,
box/.style={draw=ipsblue, rounded corners=3pt, align=center, inner sep=4pt,
minimum height=0.95cm, minimum width=2.55cm, fill=codebg, text=black},
title/.style={font=\small\bfseries, text=ipsblue, anchor=west},
arr/.style={-{Latex}, thick, draw=ipsblue}
]
% --- 1: API Gateway ---
\node[title] (t1) at (0,0) {API Gateway};
\node[box, below=0.3cm of t1.west, anchor=west] (client) {Desktop / Agent};
\node[box, right=of client] (gw) {Gateway :8189};
\node[box, right=of gw] (svc) {Microservicios};
\draw[arr] (client) -- (gw);
\draw[arr] (gw) -- (svc);
% --- 2: ARQ ---
\node[title] (t2) at (0,-2.15) {Cola async (ARQ)};
\node[box, below=0.3cm of t2.west, anchor=west] (api) {extraction API};
\node[box, right=of api] (redis) {Redis / ARQ};
\node[box, right=of redis] (w) {Workers $\times N$};
\draw[arr] (api) -- (redis);
\draw[arr] (redis) -- (w);
% --- 3: Claim ---
\node[title] (t3) at (0,-4.3) {Claim / lease (orquestaci\'on)};
\node[box, below=0.3cm of t3.west, anchor=west] (store) {bot-descarga\\(orquestador)};
\node[box, right=of store] (claim) {claim at\'omico};
\node[box, right=of claim] (agent) {Agent Selenium\\(PC)};
\draw[arr] (store) -- (claim);
\draw[arr] (claim) -- (agent);
\end{tikzpicture}%
}
\caption{Patrones: Gateway, cola ARQ y claim. El servicio \texttt{bot-descarga} \textbf{orquesta};
el \textbf{agent Selenium} en el PC ejecuta la descarga.}
\label{fig:patrones}
\end{figure}