Open-Source-CQRS-Framework für Cloud-Native-Microservices

Wir haben ein einzigartiges flexibles architektonisches Framework entwickelt, das vollständig serverlos ist und sich leicht für Microservices in Azure Cloud anpassen lässt

CloudDevOpsPlatform development

Project highlights

  • Senkung der Infrastrukturkosten um 80%
  • Steigerung der operativen Effizienz um bis zu 50%
  • Steigerung der operativen Effizienz um bis zu 50%
Branche:
Branchenübergreifende Anwendung
Markt:
Global
Teamgröße:
12 Softwareentwickler

Geschäftsherausforderung

Als vertrauenswürdiger Anbieter von Softwareentwicklungsdiensten für führende Technologieunternehmen und Fortune-500-Unternehmen arbeitet Intellias ständig an der Entwicklung von Vorwörtern und innovativen Lösungen. Aufgrund unserer umfangreichen Erfahrung mit Cloud-basierten Technologien, insbesondere mit dem schnell wachsenden Microsoft Azure, fehlten uns komplexe Anwendungen und Cloud-Frameworks, die uns und unseren Kunden helfen würden, die Entwicklung von Mikroservice-Produkten zu steigern. Um diesen Bedarf zu decken, haben wir unser Cloud-Fachwissen innerhalb des Unternehmens gesammelt und beschlossen, unser eigenes serverloses CQRS-Framework für Cloud-native Microservices zu entwickeln.

Gelieferte Lösung

Wir entwickelten unser System in fünf Stufen, um eine hohe Datenkonsistenz und optimale operative Effizienz zu gewährleisten:

  • Entwicklung des Systemkerns
  • Entwicklung von Cloud-Konnektoren und Bibliotheken für Azure CQRS-Dienste, wie Service Bus, Storage Queue und Table Storage
  • Entwicklung von Bereitstellungs- und Überwachungssystemen
  • Entwicklung von Echtzeit-Streaming mit GraphQL
  • Entwicklung eines automatisierten Test-Frameworks

Im Streben nach einem zuverlässigen Betrieb verwenden wir Sperren von Befehlen, integrieren zweiphasiger Commits und stellen die Deduplizierung und Abfolge von Ereignissen sicher.

Da der Verkehr zum Lesen und Schreiben der Daten in einem Primärspeicher unterschiedlich ist und die gesamte Kommunikation asynchron erfolgt, bestand unsere Aufgabe darin, das CQRS-Framework an asymmetrische Lasten anpassbar zu machen. Deshalb haben wir das Konzept des domänengesteuerten Designs (DDD) verfolgt, um die Geschäftslogik und die Produktentwicklung zu optimieren.

Wir bauten unser System auf einem serverlosen Modell auf und wählten Azure als den am schnellsten wachsenden und vielversprechendsten Cloud-Anbieter auf dem Markt. Basierend auf den Technologien C#, Azure Functions, Azure Service Bus, Cosmos DB, Azure Search, Azure Storage, GraphQL und Azure DevOps verfügt unser Framework über eine ereignisgesteuerte Architektur und die folgenden kritischen Komponenten:

  1. Front-End-Single-Page-Webanwendung (SPA) für schnellere Übergänge.
  2. Gateway zur Verarbeitung von Leseanforderungen und zur Weiterleitung von Schreibanforderungen an das System selbst.
  3. Subdomains, um bestimmte Geschäftsbereiche abzudecken:
    • CommandHandler, der Befehle umleitet und Ereignisse erzeugt;
    • EventHandler, der Ereignisse verarbeitet und das Gateway benachrichtigt;
    • ProcessManager, der Befehle an Subdomains sendet und auf Ereignisse reagiert.
  4. Gemeinsam genutzte Komponente zur Durchführung von Überwachungs-, Messaging- und Konfigurationsfunktionen.

Der vollständige Datenfluss des Intellias CQRS-Frameworks beginnt, wenn ein Benutzer die SPA besucht. Je nachdem, auf welche Schaltflächen die Benutzer auf der Webseite klicken, werden ihre Anfragen von der SPA zum Gateway weitergeleitet. Das Gateway wiederum verarbeitet die Anfragen, indem es sie an die entsprechenden Subdomains sendet. Dann wendet der CommandHandler die erforderlichen Änderungen auf das System an, aktiviert die Aggregate Root und delegiert Befehle an sie.
Open-Source-CQRS-Framework für Cloud-Native-Microservices

Um sicherzustellen, dass alle Ursachen und Auswirkungen von Maßnahmen nachvollziehbar sind, verwenden wir das Event Sourcing-Muster, das die von der Aggregate Root implementierten Änderungen verfolgt.
Open-Source-CQRS-Framework für Cloud-Native-Microservices

Nachdem alle Änderungen gespeichert wurden, benachrichtigt der CommandHandler über die erfolgreiche Befehlsausführung und veröffentlicht das Integrationsereignis. Als nächstes übernimmt der EventHandler die Informationen, um sie in den QueryModels zu aktualisieren.
Open-Source-CQRS-Framework für Cloud-Native-Microservices

Die QueryModels optimieren Daten für das Lesen und der EventHandler nähert sich der SPA über das Gateway, um Änderungen auf dem Bildschirm des Benutzers anzuzeigen.
Open-Source-CQRS-Framework für Cloud-Native-Microservices

Manchmal kann die Validierung von Benutzeranfragen fehlschlagen. Um solche Probleme korrekt anzugehen, haben wir einen Mechanismus implementiert, der es ermöglicht, alle Details über Fehlerursache und -zustand abzurufen. Unser Azure-Cloud-Migrationsrahmen kann auch im Falle eines kritischen Ausfalls alle Ereignisse wiederherstellen.

Unternehmensergebnisse

Heute ist das von Intellias speziell entwickelte CQRS-Framework ein völlig einzigartiger, einmaliger Cloud-Softwarebeschleuniger. Es dient als Ermöglicher von Microservice-Lösungen für Unternehmen, die mit Azure in verschiedenen Bereichen und Branchen von FinTech bis zum Gesundheitswesen arbeiten. Einige frühe Anwender unserer Technologie profitieren bereits von den Vorteilen des CQRS-Frameworks.

Mit der maximalen Systemkapazität von 500 TB und einer Spitzenleistung von rund 4 Milliarden pro Sekunde verarbeiteten Transaktionen kann unser CQRS-Framework Geschwindigkeiten von bis zu 1000 Instanzen pro Minute skalieren und jeden Mikrodienst unabhängig voneinander bereitstellen. Solche Vorteile helfen Unternehmen, die Zeit bis zur Markteinführung ihrer Produkte zu beschleunigen, die Entwicklungszeit um bis zu 50% zu verkürzen und die Infrastrukturkosten um 80% zu senken.

Nachdem wir bei Intellias ein solch revolutionäres Framework entwickelt haben, setzen wir es intern aktiv ein. Das CQRS-Framework ist zu einem Kernstück unserer internen Talentmanagement-Plattform und der Unternehmenssysteme zur Abwicklung von Geschäftsprozessen geworden.

Wie können wir Ihnen helfen?

Kontaktieren Sie uns. Wir freuen uns darauf, von Ihnen zu hören.

Wir verwenden Cookies, um Ihnen das beste persönliche Erlebnis zu bieten.
Indem Sie auf „Akzeptieren“ klicken, erklären Sie sich mit der Verwendung von Cookie, wie in der Cookie-Richtlinie beschrieben, einverstanden.

Danke für Ihre Nachricht.
Wir melden uns in Kürze bei Ihnen.