Skip to content

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