As a trusted provider of software engineering services to leading tech companies and Fortune 500 enterprises, Intellias is constantly working on the development of foreword and innovative solutions. Having vast experience with cloud-native technologies, especially with the rapidly growing Microsoft Azure, we lacked complex applications and cloud frameworks that would help both us and our clients scale up the development of microservice products. To cover this need, we have accumulated our cloud expertise within the company and decided to develop our own serverless CQRS Framework for cloud-native microservices.
We’ve developed our system in five stages, ensuring high consistency of data and optimal operational efficiency:
- System kernel development
- Development of cloud connectors and libraries for Azure CQRS services, such as Service Bus, Storage Queue, and Table Storage
- Development of deployment and monitoring systems
- Development of real-time streaming using GraphQL
- Development of an automated testing framework
Striving for reliable operation, we use commands locking, incorporate two-phase commits, and ensure event deduplication and sequence.
Since the traffic for reading and writing the data in a primary storage differs, and the entire communication is asynchronous, our task was to make the CQRS Framework adaptable to asymmetric loads. That’s why we followed domain-driven design (DDD) concept to optimize business logic and product development.
We built our system on a serverless model, choosing Azure as the fastest-growing and promising cloud vendor on the market. Based on C#, Azure Functions, Azure Service Bus, Cosmos DB, Azure Search, Azure Storage, GraphQL, and Azure DevOps technologies, our framework has an event-driven architecture and the following critical components:
- Front-end single-page application (SPA) for faster transitions.
- Gateway to process read requests and forward write requests to the system itself.
- Subdomains to cover specific business domains:
- CommandHandler that redirects commands and produces events;
- EventHandler that processes events and notifies Gateway;
- ProcessManager that sends commands to Subdomains and responds to events.
- Shared component to perform monitoring, messaging, and configuration functions.
The complete data flow of the Intellias CQRS Framework starts when a user visits the SPA. Based on which buttons users click on the website, their requests get transferred from the SPA to the gateway. The gateway, in its turn, processes the requests by sending them to corresponding subdomains. Then, the CommandHandler applies the necessary changes to the system, activating the Aggregate Root and delegating commands to it.
To ensure that all causes and effects of actions are traceable, we use the Event Sourcing pattern that tracks changes implemented by the Aggregate Root.
After all amends are saved, the CommandHandler notifies on the successful command execution and publishes the Integration Event. Next, the EventHandler takes over the information to update it in the QueryModels.
The QueryModels optimize data for reading and the EventHandler approaches the SPA through the gateway to display changes on the user’s screen.
Sometimes, user requests may fail validation. To address such issues correctly, we’ve implemented a mechanism that allows to retrieve all details on the error origin and condition. Our Azure Cloud migration framework can also recover all events in case of a critical failure.
Today, the Intellias custom-built CQRS Framework is a completely unique, one-of-a-kind cloud software accelerator. It serves as an enabler of microservice solutions for companies operating with Azure in different domains and industries from FinTech to healthcare. Some early adopters of our technology are already reaping the benefits of the CQRS Framework.
With the maximum system capacity of 500 TB and performance excellence of around 4 billion transactions processed per second, our CQRS Framework can scale speeds of up to 1000 instances per minute and deploy each microservice independently. Such advantages help companies accelerate time to market of their products, reduce development time up to 50%, and cut down infrastructure costs by 80%.
Having developed such a revolutionary framework at Intellias, we are actively using it in-house. The CQRS Framework has become a core of our internal talent management platform and corporate systems for handling business processes.