Sources

Sources Source A connection to an external system that Drasi monitors for data changes. Learn more connect Drasi to your existing databases and software systems, enabling Drasi to observe changes as they occur. Drasi works with your existing systems–you don’t need to build new systems to use Drasi.

Sources perform three important functions:

  • Process changes: Monitor the change log or feed generated by the source system and push those changes to each Continuous Query Continuous Query A query that runs continuously, maintaining an always-current result set as data changes. Learn more that uses that Source as input.
  • Translate data: Convert source data into a consistent property graph Property Graph A data model where entities (nodes) and their connections (relationships) have properties. Learn more data model so Continuous Queries can work with it as Nodes Node A data entity in the property graph model, representing a discrete object or concept. Learn more and Relations Relationship A connection between two nodes in the property graph, representing how entities relate. Learn more . For graph sources like Gremlin, no translation is needed. For relational sources like PostgreSQL, the Source transforms records into graph nodes.
  • Initialize state: Provide a way for Continuous Queries to query the source system at startup to bootstrap Bootstrap The process of loading initial data when a Continuous Query starts. Learn more the initial query result.
End to End

How Sources Work

When you create a Source, you provide the connection details and credentials needed to access the source system. When started, the Source:

  1. Connects to the source system’s change feed or log
  2. Subscribes to changes for the data types your Continuous Queries need
  3. Translates incoming changes into the Source Change Event Source Change Event A notification from a Source describing a data change (insert, update, or delete). Learn more format used internally by Drasi
  4. Pushes changes to subscribed Continuous Queries in real-time

Sources handle the complexity of different database protocols and change data capture Change Data Capture Technology that detects and captures changes made to database data. Learn more mechanisms, presenting a unified stream of Source Change Events to your Continuous Queries.

Available Source Implementations

Different Source implementations are available depending on which Drasi product you use:

Source Type drasi-lib drasi-lib A Rust crate for building change-driven solutions with embedded Drasi capabilities. Learn more / Drasi Server Drasi Server A standalone Data Change Processing server running as a process or Docker container. Learn more Drasi for Kubernetes Drasi for Kubernetes A scalable Data Change Processing platform running on Kubernetes clusters. Learn more
PostgreSQL Yes Yes
MySQL - Yes
Microsoft SQL Server - Yes
Azure Cosmos DB (Gremlin API) - Yes
Azure Event Hubs - Yes
Microsoft Dataverse - Yes
Kubernetes - Yes
HTTP Yes -
gRPC Yes -
Mock Yes -
Platform (Redis Streams) Yes -

Source Lifecycle

Sources are long-running components that:

  • Start monitoring for changes as soon as they are started
  • Continue running until explicitly stopped or deleted
  • Automatically reconnect if the connection to the source system is interrupted
  • Push changes to all Continuous Queries that subscribe to them

Configuring Sources

Source creation and configuration varies by Drasi product. Each product provides its own approach for defining Sources with connection details, credentials, and provider-specific settings.

To configure Sources for your deployment, see the product-specific guides:

For drasi-lib, Sources are configured programmatically via the Rust API. See the drasi-lib documentation for details.