Drasi is an innovative data processing system designed to streamline the detection of critical events within complex infrastructures. It allows immediate, business-objective-driven actions, making it ideal for developers and software architects working in event-driven scenarios such as Internet of Things (IoT) integrations, security enhancements, and managing sophisticated applications. The Microsoft Azure Incubations team is excited to announce that Drasi is now available as an open-source project. For more information and to explore Drasi, visit drasi.io and check out the project’s GitHub repositories.
Challenges in Event-Driven Architecture
Event-driven systems are powerful tools that enable real-time responses and efficiently decouple services. However, they present several challenges in real-world applications. As businesses grow, events become more frequent and complex, making it difficult to detect meaningful changes across components. Additionally, data is often stored in various formats and silos, and real-time processing is critical to avoid delays due to network latency or slow event handling.
Developers frequently struggle to build event-handling mechanisms because available solutions rarely offer a comprehensive framework for change detection and reaction. As a result, they often rely on inefficient polling mechanisms or pieced-together tools, leading to complicated, hard-to-maintain architectures. Many change detection tools use batch processing or delayed event analysis, missing the immediate reactions necessary for critical business functions.
Drasi: Solution for Event-Driven Systems
Drasi simplifies the automation of intelligent reactions in dynamic systems, offering real-time, actionable insights without the overhead of traditional data processing methods. It monitors system changes via logs and change feeds without the need to copy data to a central repository or continuously query data sources.
With Drasi, developers can define changes they want to track using database queries and set up logical conditions to evaluate those changes. Drasi determines when a change triggers an update and executes automated reactions based on the business's specific needs. This reduces complexity, ensures timely action, and prevents critical changes from being missed.
Drasi uses three core components
Sources: These connect to various data sources, monitoring critical changes in real-time, including application logs, database updates, and system metrics.
Continuous Queries: Instead of relying on manual queries, Drasi continuously evaluates incoming changes based on predefined conditions. These queries are written in Cypher Query Language and can integrate data from multiple sources.
Reactions: When a change completes a continuous query, Drasi triggers automated reactions, such as sending alerts or updating other systems, based on operational needs.
Drasi’s architecture is flexible and extensible. It offers pre-built integrations with PostgreSQL, Microsoft Dataverse, and Azure Event Grid, while allowing users to create custom integrations to suit their specific environment.
Open-Source Contribution to the Cloud-Native Landscape
Drasi has been submitted to the Cloud Native Computing Foundation (CNCF) as a Sandbox project, which, if accepted, will benefit from the CNCF community’s support and best practices. This submission aligns with Microsoft’s commitment to empowering developers by creating open, cloud-neutral technologies. Drasi joins other Azure Incubations projects like Dapr, KEDA, and Copacetic, which are all available on GitHub.
Get Involved with Drasi
As an open-source project licensed under the Apache 2.0 license, Drasi invites developers, solution architects, and IT professionals to contribute and collaborate. To get started with Drasi, check out the following resources:
Drasi aims to be a vital part of the cloud-native landscape, helping to advance cloud-native technologies.
Image credit: https://azure.microsoft.com/en-us/blog/drasi-microsofts-newest-open-source-project-simplifies-change-detection-and-reaction-in-complex-systems/