Drasi is Microsoft’s new open-source project that simplifies change detection and reaction in complex systems, enhancing real-time event-driven architectures.
Drasi is a new data processing system that simplifies detecting critical events within complex infrastructures and taking immediate action tuned to business objectives. Developers and software architects can leverage its capabilities across event-driven scenarios, whether working on Internet of Things (IoT) integrations, enhancing security protocols, or managing sophisticated applications. The Microsoft Azure Incubations team is excited to announce that Drasi is now available as an open-source project. To learn more and get started with Drasi, visit drasi.io and the project’s GitHub repositories.
Event-driven architectures
Event-driven systems, while powerful for enabling real-time responses and efficient decoupling of services, come with several real-world challenges. As systems scale in line with business needs and events grow in frequency and complexity, detecting relevant changes across components can become overwhelming. Additional complexity arises from data being stored in various formats and silos. Ensuring real-time responses in these systems is crucial, but processing delays can occur due to network latency, congestion, or slow event processing.
Currently, developers struggle to build event-handling mechanisms because available libraries and services rarely offer an end-to-end, unified framework for change detection and reaction. They must often piece together multiple tools, resulting in complex, fragile architectures that are hard to maintain and scale. For example, existing solutions may rely on inefficient polling mechanisms or require constant querying of data sources, leading to performance bottlenecks and increased resource consumption. Also, many change detection tools lack true real-time capabilities, utilizing batch processing, data collation, or delayed event analysis. For businesses that need immediate reactions, even these slight delays can lead to missed opportunities or risks.
In short, there is a pressing need for a comprehensive solution that detects and accurately interprets critical events, and automates appropriate, meaningful reactions.
Introducing Drasi for event-driven systems
Drasi simplifies the automation of intelligent reactions in dynamic systems, delivering real-time actionable insights without the overhead of traditional data processing methods. It takes a lightweight approach to tracking system changes by watching for events in logs and change feeds, without copying data to a central data lake or repeatedly querying data sources.
Application developers use database queries to define which changes to track and express logical conditions to evaluate change data. Drasi then determines if any changes trigger updates to the result sets of those queries. If they do, it executes context-aware reactions based on your business needs. This streamlined process reduces complexity, ensures timely action while the data is most relevant, and prevents important changes from slipping through the cracks. This process is carried out using three Drasi components: Sources, Continuous Queries, and Reactions:
- Sources—These connect to various data sources in your systems, continuously monitoring for critical changes. A Source tracks application logs, database updates, or system metrics, and gathers relevant information in real time.
- Continuous Queries—Drasi uses Continuous Queries instead of manual, point-in-time queries, constantly evaluating incoming changes based on predefined criteria. These queries, written in Cypher Query Language, can integrate data from multiple sources without needing prior collation.
- Reactions—When changes complete a continuous query, Drasi executes registered automated reactions. These reactions can send alerts, update other systems, or perform remediation steps, all tailored to your operational needs.
Drasi’s architecture is designed for extensibility and flexibility at its two integration points, Sources and Reactions. In addition to the prebuilt Drasi Sources and Reactions available for use today, which include PostgreSQL, Microsoft Dataverse, and Azure Event Grid, you can also create your own integrations based on business needs or system requirements. This versatility makes it easy to adapt and customize Drasi for specific environments.
To illustrate Drasi in action, let’s look at a solution we recently built to convert connected fleet vehicle telemetry into actionable business operations. The previous solution required multiple integrations across systems to query static data about the vehicles and their maintenance records, batch-process vehicle telemetry and combine it with the static data, and then trigger alerts. Predictably, this complex setup was difficult to manage and update to meet business needs. Drasi simplified this by acting as the sole component for change detection and automated reactions.
In this solution, a single instance of Drasi uses two distinct Sources: one for Microsoft Dynamics 365 to collect maintenance records, and a second for Azure Event Hubs to connect to telemetry streams. Two Continuous Queries assess the telemetry events against criteria for predictive planned maintenance (for example, the vehicle will complete10,000 miles in the next 30 days) and critical alerts that require immediate remediation. Based on the result sets of the Continuous Queries, a single Reaction for Dynamics 365 Field Service sends information to either generate an IoT alert for critical events or notify a fleet admin that a vehicle will reach a maintenance milestone soon.
Another practical example that showcases Drasi’s real-world applicability is its use in smart building management. Facilities managers typically use dashboards to monitor the comfort levels of their spaces and need to be alerted when there are deviations in these levels. With Drasi, creating an always-accurate dashboard was simple. The building spaces are represented in a Microsoft Azure Cosmos DB database, which records room conditions updates. A Drasi Source reads the change logs of the Azure Cosmos DB database and passes this change data to Continuous Queries that calculate the comfort levels for individual rooms and provide aggregate values for entire floors and the building itself. A Reaction for SignalR receives the output of the Continuous Queries and directly drives updates to a browser-based dashboard.
To offer a glimpse into how Drasi can benefit organizations, here’s feedback from Netstar, one of our preview partners. Netstar systems handle vast amounts of fleet monitoring and management data, and provide valuable, real-time insights to customers.
We believe Drasi holds potential for our products and customers; the platform’s flexibility suggests it could adapt to various use cases, such as providing up-to-date information about customer fleets, as well as alerting Netstar to operational issues in our own environment. Drasi’s flexibility may enable us to simplify and streamline both our analytics and software stack. We look forward to continuing to experiment with Drasi and to provide feedback to the Drasi team.
—Daniel Joubert, General Manager, Netstar
Drasi: A new category of data processing systems
Managing change in evolving systems doesn’t have to be a complicated, error-prone task. By integrating multiple data sources, continuously monitoring for relevant changes, and triggering smart, automated reactions, Drasi streamlines the entire process. There is no longer a need to build complicated systems to detect changes, manage large data lakes, or wrestle with integrating modern detection software into existing ecosystems. Drasi provides clarity amidst complexity, enabling your systems to run efficiently and your business to stay agile.
I’m pleased to share that Drasi has been submitted to the Cloud Native Computing Foundation (CNCF) as a Sandbox project. This means it will benefit from the CNCF community’s guidance, support, governance, best practices, and resources, if accepted. Drasi’s incubation and submission to a foundation builds on Microsoft’s efforts to empower developers to build any application using any language on any platform by creating open, flexible technology for cloud and edge applications. The Azure Incubations team regularly contributes to this aim by launching projects like Dapr, KEDA, Copacetic, and most recently Radius, which are cloud-neutral and open-source. These projects are available on GitHub and are part of the CNCF.
We believe our latest contribution, Drasi, can be a vital part of the cloud-native landscape and help advance cloud-native technologies.
Get involved with Drasi
As an open-source project, licensed under the Apache 2.0 license, Drasi underscores Microsoft’s commitment to fostering innovation and collaboration within the tech community. We welcome developers, solution architects, and IT professionals to help build and enhance Drasi. To get started with Drasi, please see: