dagarcos vor 3 Wochen
Ursprung
Commit
1c7a637035

+ 101 - 0
Slides/SpringDataPoly2026.md

@@ -0,0 +1,101 @@
+---
+marp: true
+theme: uncover
+paginate: false
+size: 16:9
+backgroundColor: #f4f5f7
+color: #1f2933
+style: |
+  section {
+    font-size: 1.8em;
+  }
+
+  h1, h2, h3 {
+    color: #0f172a;
+  }
+
+  /* Texto secundario */
+  p, li {
+    color: #1f2933;
+  }
+
+  /* Cajas destacadas */
+  .box {
+    border: 3px solid #2563eb;
+    padding: 1em;
+    border-radius: 12px;
+    background-color: #e0e7ff;
+    color: #1e293b;
+  }
+
+  .box-compact{
+    font-size: 85% !important;
+    line-height: 1.5;
+  }
+
+  .box-supercompact{
+    font-size: 65% !important;
+    line-height: 1.2;
+  }
+
+  .left{
+    text-align: left;
+  }
+
+  .columns {
+    display: flex;
+    gap: 1em;
+    justify-content: center;
+    align-items: stretch;
+  }
+
+
+  .box.warning {
+    border-color: #f97316;
+    background-color: #ffedd5;
+  }
+
+  /* Alineación */
+  .left {
+    text-align: left;
+  }
+
+  /* Código */
+  pre, code {
+    background-color: #e5e7eb;
+    color: #111827;
+  }
+  .w-30 { width: 30%; }
+  .w-40 { width: 40%; }
+  .w-50 { width: 50%; }
+  .w-60 { width: 60%; }
+  .w-70 { width: 70%; }
+  .w-80 { width: 80%; }
+  .center {
+    margin-left: auto;
+    margin-right: auto;
+  }
+
+
+
+
+---
+
+# Spring Data:
+
+### Persistencia en Sistemas Políglotas y Reactivos
+
+
+<br/>
+<br/>
+
+##### Daniel García Costa  
+###### 2026
+
+---
+
+<img src="img/diagrama_componentes.png" width="90%"/>
+
+---
+
+<img src="img/diagrama_componentes.png" width="90%"/>

Datei-Diff unterdrückt, da er zu groß ist
+ 49 - 0
Slides/img/diagrama_bbdds.drawio


+ 145 - 0
Slides/img/diagrama_componentes.drawio

@@ -0,0 +1,145 @@
+<mxfile host="app.diagrams.net">
+  <diagram name="Auction System - Engineering View" id="0">
+    <mxGraphModel dx="2847" dy="2240" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="auctionContainer" parent="1" style="swimlane;horizontal=0;startSize=40;fillColor=#e1d5e7;fontSize=16;strokeColor=#9673a6;" value="Auction System" vertex="1">
+          <mxGeometry height="610" width="840" x="350" y="90" as="geometry" />
+        </mxCell>
+        <mxCell id="redis" parent="auctionContainer" style="rounded=1;fillColor=#ffe6cc;fontSize=16;fontStyle=1;strokeColor=#d79b00;" value="Redis" vertex="1">
+          <mxGeometry height="40" width="230" x="74" y="90" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-1" parent="auctionContainer" style="swimlane;horizontal=0;startSize=40;fillColor=#e1d5e7;fontSize=16;strokeColor=#9673a6;" value="Catalog Service" vertex="1">
+          <mxGeometry height="270" width="300" x="510" y="20" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-8" edge="1" parent="CJt7FYll3WHYcLXgkBZM-1" source="CJt7FYll3WHYcLXgkBZM-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-6">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-5" parent="CJt7FYll3WHYcLXgkBZM-1" style="rounded=1;fontSize=16;fillColor=#fad9d5;strokeColor=#ae4132;" value="Controller" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="24" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-9" edge="1" parent="CJt7FYll3WHYcLXgkBZM-1" source="CJt7FYll3WHYcLXgkBZM-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-7">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-6" parent="CJt7FYll3WHYcLXgkBZM-1" style="rounded=1;fontSize=16;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="Service" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="114" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-7" parent="CJt7FYll3WHYcLXgkBZM-1" style="rounded=1;fontSize=16;fillColor=#fff2cc;strokeColor=#d6b656;" value="Repository" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="204" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-18" parent="auctionContainer" style="swimlane;horizontal=0;startSize=40;fillColor=#e1d5e7;fontSize=16;strokeColor=#9673a6;" value="Persistence Service" vertex="1">
+          <mxGeometry height="270" width="300" x="510" y="320" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-19" edge="1" parent="CJt7FYll3WHYcLXgkBZM-18" source="CJt7FYll3WHYcLXgkBZM-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-22">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-20" parent="CJt7FYll3WHYcLXgkBZM-18" style="rounded=1;fontSize=16;fillColor=#f8cecc;strokeColor=#b85450;" value="Controller" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="24" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-21" edge="1" parent="CJt7FYll3WHYcLXgkBZM-18" source="CJt7FYll3WHYcLXgkBZM-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-23">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-22" parent="CJt7FYll3WHYcLXgkBZM-18" style="rounded=1;fontSize=16;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="Service" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="114" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-23" parent="CJt7FYll3WHYcLXgkBZM-18" style="rounded=1;fontSize=16;fillColor=#fff2cc;strokeColor=#d6b656;" value="Repository" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="204" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-40" edge="1" parent="auctionContainer" source="CJt7FYll3WHYcLXgkBZM-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=2;" target="redis">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-12" parent="auctionContainer" style="swimlane;horizontal=0;startSize=40;fillColor=#e1d5e7;fontSize=16;strokeColor=#9673a6;" value="Auction API     [ WebFlux ]" vertex="1">
+          <mxGeometry height="340" width="400" x="90" y="220" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-13" edge="1" parent="CJt7FYll3WHYcLXgkBZM-12" source="CJt7FYll3WHYcLXgkBZM-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-16">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-14" parent="CJt7FYll3WHYcLXgkBZM-12" style="rounded=1;fontSize=16;fillColor=#fad9d5;strokeColor=#ae4132;" value="Controller" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="24" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-15" edge="1" parent="CJt7FYll3WHYcLXgkBZM-12" source="CJt7FYll3WHYcLXgkBZM-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-43" edge="1" parent="CJt7FYll3WHYcLXgkBZM-12" source="CJt7FYll3WHYcLXgkBZM-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-41">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-44" edge="1" parent="CJt7FYll3WHYcLXgkBZM-12" source="CJt7FYll3WHYcLXgkBZM-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-37">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-16" parent="CJt7FYll3WHYcLXgkBZM-12" style="rounded=1;fontSize=16;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="Service" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="150" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-17" parent="CJt7FYll3WHYcLXgkBZM-12" style="rounded=1;fontSize=16;fillColor=#fff2cc;strokeColor=#d6b656;" value="Repository" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="273" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-37" parent="CJt7FYll3WHYcLXgkBZM-12" style="rounded=1;fontSize=16;rotation=-90;fillColor=#d5e8d4;strokeColor=#82b366;" value="Reactive Client" vertex="1">
+          <mxGeometry height="40" width="140.87" x="250" y="233" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-41" parent="CJt7FYll3WHYcLXgkBZM-12" style="rounded=1;fontSize=16;rotation=-90;fillColor=#d5e8d4;strokeColor=#82b366;" value="Imperative Client" vertex="1">
+          <mxGeometry height="40" width="140.87" x="249.99500000000012" y="64.00500000000011" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-10" parent="auctionContainer" style="shape=cylinder;fontSize=16;fontStyle=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="&#xa;Relational DB" vertex="1">
+          <mxGeometry height="80" width="180" x="920" y="115" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-32" edge="1" parent="auctionContainer" source="CJt7FYll3WHYcLXgkBZM-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-10">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-39" edge="1" parent="auctionContainer" source="CJt7FYll3WHYcLXgkBZM-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-42" edge="1" parent="auctionContainer" source="CJt7FYll3WHYcLXgkBZM-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="userContainer" parent="1" style="swimlane;horizontal=0;startSize=40;fillColor=#e1d5e7;fontSize=16;strokeColor=#9673a6;" value="Bid Client" vertex="1">
+          <mxGeometry height="330" width="300" x="-50" y="190" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-47" edge="1" parent="userContainer" source="bidGui" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="bidClientApi">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="bidGui" parent="userContainer" style="rounded=1;fontSize=16;fillColor=#fad9d5;strokeColor=#ae4132;" value="GUI&#xa;(Spring MVC / Thymeleaf)" vertex="1">
+          <mxGeometry height="70" width="220" x="60" y="50" as="geometry" />
+        </mxCell>
+        <mxCell id="bidClientApi" parent="userContainer" style="rounded=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;" value="Imperative Client" vertex="1">
+          <mxGeometry height="40" width="220" x="60" y="190" as="geometry" />
+        </mxCell>
+        <mxCell id="userDb" parent="1" style="shape=cylinder;fontSize=16;fontStyle=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="&#xa;Relational DB" vertex="1">
+          <mxGeometry height="80" width="200" x="1270" y="-115" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-36" edge="1" parent="1" source="CJt7FYll3WHYcLXgkBZM-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="userDb">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-24" parent="1" style="swimlane;horizontal=0;startSize=40;fillColor=#e1d5e7;fontSize=16;strokeColor=#9673a6;" value="User Service" vertex="1">
+          <mxGeometry height="270" width="300" x="750" y="-210" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-25" edge="1" parent="CJt7FYll3WHYcLXgkBZM-24" source="CJt7FYll3WHYcLXgkBZM-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-28">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-26" parent="CJt7FYll3WHYcLXgkBZM-24" style="rounded=1;fontSize=16;fillColor=#f8cecc;strokeColor=#b85450;" value="Controller" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="24" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-27" edge="1" parent="CJt7FYll3WHYcLXgkBZM-24" source="CJt7FYll3WHYcLXgkBZM-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-29">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-28" parent="CJt7FYll3WHYcLXgkBZM-24" style="rounded=1;fontSize=16;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="Service" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="114" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-29" parent="CJt7FYll3WHYcLXgkBZM-24" style="rounded=1;fontSize=16;fillColor=#fff2cc;strokeColor=#d6b656;" value="Repository" vertex="1">
+          <mxGeometry height="40" width="200" x="70" y="204" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-33" parent="1" style="shape=cylinder;fontSize=16;fontStyle=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="&#xa;Non-Relational DB" vertex="1">
+          <mxGeometry height="80" width="180" x="1270" y="504" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-34" edge="1" parent="1" source="CJt7FYll3WHYcLXgkBZM-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-33">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-45" edge="1" parent="1" source="CJt7FYll3WHYcLXgkBZM-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-24">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="CJt7FYll3WHYcLXgkBZM-46" edge="1" parent="1" source="bidClientApi" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="CJt7FYll3WHYcLXgkBZM-12">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>

BIN
Slides/img/diagrama_componentes.png


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.