C4Container title Container diagram for RuCoLA System_Ext(timing_sensors, "Timing Sensors", "Sensoren bei jedem Checkpoint <br/>senden Zeitnehmungsinformationen <br/>für Läufer") Person(visitor, Zuseher, "Zuseher, die Informationen <br/>über die aktuelle <br/>Platzierung haben wollen") Container_Boundary(c1, "RuCoLA") { Container(time_api, "Timing API", "C#", "Nimmt Zeitnehmungsinformationen entgegen") Container(result_api, "RaceResult API", "C#", "Ermöglicht Abfrage von (Zwischen-)Ergebnissen") Container_Ext(rabbit_mq, "RabbitMQ", "Message Broker", "Nachrichtenzustellung") Container(validator, "Validator", "C#", "Überprüft Zeitnehmungsinformationen auf Korrektheit") Container(scheduler, "Scheduler", "C#", "Triggert wiederkehrende Aufgaben") } System_Ext(blob_storage, "Blob Storage", "Azure Table Storage") UpdateRelStyle(timing_sensors, time_api, $offsetY="60", $offsetX="90") Rel(visitor, result_api, "Fordert Ergebnis an", "HTTPS") UpdateRelStyle(visitor, result_api, $offsetY="-30", $offsetX="-25") Rel(result_api, table_storage, "Fragt Ergebnis ab", "HTTPS") UpdateRelStyle(result_api, table_storage, $offsetY="-70", $offsetX="20") Rel(time_api, table_storage, "Speichert Zeitnehmungen", "HTTPS") UpdateRelStyle(time_api, table_storage, $offsetY="70", $offsetX="-130") Rel(scheduler, rabbit_mq, "Beauftrage Validierung", "HTTPS") Rel(validator, rabbit_mq, "Erhalte Validierungsaufträge", "HTTPS") UpdateRelStyle(validator, rabbit_mq, $offsetY="40", $offsetX="-40") Rel(validator, table_storage, "Überprüfe und korrigiere", "HTTPS")