Eventsourcing - Lastkontrolle

Diese Lösung ist verfügbar ab antony Version v2.24.70

Problem

Die neuen Entwicklungen von antony setzen auf das Eventsourcing Architekturpattern mit CQRS. Dadurch ist eine zeitliche Entkopllung der Dienste untereinander sichergestellt. Die Daten werden in einen sogenannten EventStream gespeichert, mit welchen nun konkrete ReadModels definiert werden können. Ein ReadModel berechnet aus dem EventStream diejenigen Daten, die für den jeweiligen Anwendungsfall notwendig sind.

Ein Nachteil dieses Vorgehens ist es, dass das Aufbauen eines ReadModels mitunter sehr lange dauert und viele Ressourcen beansprucht. Ohne Gegenmaßnahmen kann es sogar passieren, dass die Resourcen soweit ausgelastet werden, dass die Benutzung von antony unpraktikabel wird.

Lösung

Die Lösung ist die Begrenzung der verarbeitbaren Events pro Durchlauf durch ein ReadModel. Durch diese einfache Maßnahme kann auf der einen Seite die maximale Last reguliert werden und auf der anderen Seite die Reaktionsfähigkeit der ReadModels aufrecht erhalten werden. Die Angabe der Events wird pro Minute angegeben. Der Standardwert dieser Obergrenze lautet 100 Events/Minute.

Es gibt bisher keine grafische Möglichkeit diese Einstellung vorzunehmen. Um die Einstellung vorzunehmen, muss in die Datenbank gewechselt werden. Die Tabelle lautet read_model_config und sieht aus, wie im Bild dargestellt. Der zu verändernde Wert ist in der Spalte max_events_per_minute zu sehen.

image-20240516-100752.png