OpenLineage Integration
Overview
The OpenLineage integration module provides a concrete storage backend for the Data Lineage system. It is responsible for sending structured lineage events to an OpenLineage-compatible HTTP API, such as Marquez.
How It Works
The OpenLineageStore implements the LineageStorageProtocol. When the LineageProcessor has constructed a valid OpenLineage event, it passes it to this store's save method.
The store then uses a pre-configured, resilient HTTP Client to send the event as a POST request to the configured OpenLineage collector endpoint. The operation is designed to be fail-safe; if the API call fails, the error is logged, but it will not interrupt the main application flow.
API Reference
nala.athomic.integration.openlineage.store.OpenLineageStore
Bases: LineageStoreProtocol
A concrete implementation of the LineageStorageProtocol that publishes lineage events to an external OpenLineage-compatible HTTP API (e.g., Marquez).
It leverages Athomic's internal HttpClientFactory to ensure the connection inherits global network policies, resilience, and observability features.
__init__(settings)
Initializes the store by fetching global client configuration and creating the underlying HTTP client.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settings
|
OpenLineageStoreSettings
|
Instance-specific settings for the OpenLineage store, including endpoint overrides. |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the required global configuration block ('integration.openlineage') is missing. |
save(event_payload)
async
Sends the pre-formatted lineage event payload to the configured OpenLineage API endpoint via an HTTP POST request.
If the HTTP request fails, the error is logged but deliberately not re-raised (swallowed) to prevent lineage errors from blocking the main application flow.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
event_payload
|
Dict
|
The fully structured lineage event data dictionary. |
required |