Sources
3 minute read
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.
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:
- Connects to the source system’s change feed or log
- Subscribes to changes for the data types your Continuous Queries need
- 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
- 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
Dependency Impact
When a Source is deleted, any Continuous Queries that depend on it will stop receiving changes.
Drasi for Kubernetes does not currently enforce dependency integrity between Sources and Continuous Queries, so plan your Source lifecycle carefully.
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:
- Drasi Server Sources - Configure Sources in standalone server deployments
- Drasi for Kubernetes Sources - Configure Sources using Kubernetes resource manifests
For drasi-lib, Sources are configured programmatically via the Rust API. See the drasi-lib documentation for details.
Feedback
Was this page helpful?
Glad to hear it! Please tell us what you found helpful.
Sorry to hear that. Please tell us how we can improve.