DataHub · AsyncAPI Specification

DataHub Actions Framework Events

Version 1.4.0

Event-driven interface for responding to real-time changes in the DataHub metadata graph. The Actions Framework consumes Metadata Change Log events and Platform Events from Kafka topics, enabling seamless integration of DataHub into a broader event-based architecture. Events are emitted when any aspect on the DataHub metadata graph is changed, including creates, updates, and removals of both versioned and time-series aspects.

View Spec View on GitHub Data CatalogData DiscoveryData GovernanceData LineageMetadataAsyncAPIWebhooksEvents

Channels

MetadataChangeLog_Versioned_v1
subscribe onVersionedMetadataChange
Receive versioned metadata change log events
Kafka topic for versioned aspect changes. Emitted when any versioned aspect on the DataHub metadata graph is created, updated, or removed. Versioned aspects maintain numeric versions and are persisted in the relational database. Examples include ownership, tags, glossary terms, dataset properties, and schema metadata.
MetadataChangeLog_Timeseries_v1
subscribe onTimeseriesMetadataChange
Receive time-series metadata change log events
Kafka topic for time-series aspect changes. Emitted when any time-series aspect on the DataHub metadata graph is created or updated. Time-series aspects carry timestamps and are stored in search indexes. Examples include dataset profiles, data quality assertions, and usage statistics.
PlatformEvent_v1
subscribe onPlatformEvent
Receive platform events
Kafka topic for platform-level events. Contains semantic change events that represent higher-level operations on the DataHub platform, such as entity creation, tag additions, ownership changes, and glossary term assignments. The Entity Change Event is the most important platform event type and serves as a key component of the DataHub Actions Framework.

Messages

MetadataChangeLogEvent
Metadata Change Log Event
Emitted when any aspect on the DataHub metadata graph is changed.
EntityChangeEvent
Entity Change Event
Semantic change event representing a meaningful operation on an entity.

Servers

kafka
kafkaBroker {kafkaHost}:{kafkaPort}
Kafka broker for consuming DataHub metadata events. The default event source used by the DataHub Actions Framework subscribes to Kafka topics that stream metadata changes and platform events from the DataHub metadata service.

AsyncAPI Specification

Raw ↑
asyncapi: 2.6.0
info:
  title: DataHub Actions Framework Events
  description: >-
    Event-driven interface for responding to real-time changes in the DataHub
    metadata graph. The Actions Framework consumes Metadata Change Log events
    and Platform Events from Kafka topics, enabling seamless integration of
    DataHub into a broader event-based architecture. Events are emitted when
    any aspect on the DataHub metadata graph is changed, including creates,
    updates, and removals of both versioned and time-series aspects.
  version: '1.4.0'
  contact:
    name: DataHub Project
    url: https://datahubproject.io
  license:
    name: Apache License 2.0
    url: https://github.com/datahub-project/datahub/blob/master/LICENSE
externalDocs:
  description: DataHub Actions Framework Documentation
  url: https://docs.datahub.com/docs/actions
servers:
  kafkaBroker:
    url: '{kafkaHost}:{kafkaPort}'
    protocol: kafka
    description: >-
      Kafka broker for consuming DataHub metadata events. The default event
      source used by the DataHub Actions Framework subscribes to Kafka topics
      that stream metadata changes and platform events from the DataHub
      metadata service.
    variables:
      kafkaHost:
        default: localhost
        description: Kafka broker hostname
      kafkaPort:
        default: '9092'
        description: Kafka broker port
    security:
      - saslPlain: []
channels:
  MetadataChangeLog_Versioned_v1:
    description: >-
      Kafka topic for versioned aspect changes. Emitted when any versioned
      aspect on the DataHub metadata graph is created, updated, or removed.
      Versioned aspects maintain numeric versions and are persisted in the
      relational database. Examples include ownership, tags, glossary terms,
      dataset properties, and schema metadata.
    subscribe:
      operationId: onVersionedMetadataChange
      summary: Receive versioned metadata change log events
      description: >-
        Subscribe to versioned metadata change events emitted when entities
        have their versioned aspects modified. These events contain the new
        aspect value, the previous aspect value (if applicable), the change
        type, and audit information about who made the change and when.
      message:
        $ref: '#/components/messages/MetadataChangeLogEvent'
  MetadataChangeLog_Timeseries_v1:
    description: >-
      Kafka topic for time-series aspect changes. Emitted when any time-series
      aspect on the DataHub metadata graph is created or updated. Time-series
      aspects carry timestamps and are stored in search indexes. Examples
      include dataset profiles, data quality assertions, and usage statistics.
    subscribe:
      operationId: onTimeseriesMetadataChange
      summary: Receive time-series metadata change log events
      description: >-
        Subscribe to time-series metadata change events emitted when entities
        have their time-series aspects modified. These events are useful for
        tracking operational metadata such as profiling results, quality checks,
        and usage patterns over time.
      message:
        $ref: '#/components/messages/MetadataChangeLogEvent'
  PlatformEvent_v1:
    description: >-
      Kafka topic for platform-level events. Contains semantic change events
      that represent higher-level operations on the DataHub platform, such as
      entity creation, tag additions, ownership changes, and glossary term
      assignments. The Entity Change Event is the most important platform event
      type and serves as a key component of the DataHub Actions Framework.
    subscribe:
      operationId: onPlatformEvent
      summary: Receive platform events
      description: >-
        Subscribe to platform events that represent semantic changes in the
        DataHub metadata graph. These events provide a higher-level abstraction
        over raw metadata changes and are useful for triggering actions based
        on specific business-meaningful operations.
      message:
        $ref: '#/components/messages/EntityChangeEvent'
components:
  securitySchemes:
    saslPlain:
      type: plain
      description: >-
        SASL/PLAIN authentication for Kafka broker connections. Configure
        with the appropriate credentials for your Kafka deployment.
  messages:
    MetadataChangeLogEvent:
      name: MetadataChangeLogEvent_v1
      title: Metadata Change Log Event
      summary: >-
        Emitted when any aspect on the DataHub metadata graph is changed.
      description: >-
        A metadata change log event recording a modification to an entity's
        aspect in the DataHub metadata graph. Contains the entity URN, entity
        type, change type, aspect name, new aspect value, previous aspect
        value, system metadata, and audit information. These events are the
        primary mechanism for tracking all metadata modifications in DataHub.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/MetadataChangeLogEventPayload'
    EntityChangeEvent:
      name: EntityChangeEvent_v1
      title: Entity Change Event
      summary: >-
        Semantic change event representing a meaningful operation on an entity.
      description: >-
        An entity change event representing a semantic change in the DataHub
        metadata graph. Unlike raw metadata change log events, entity change
        events provide higher-level abstractions that describe business-meaningful
        operations such as tag additions, ownership assignments, and glossary
        term linkages.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/EntityChangeEventPayload'
  schemas:
    MetadataChangeLogEventPayload:
      type: object
      description: >-
        Payload of a Metadata Change Log event containing the full details
        of a metadata change in the DataHub graph.
      required:
        - entityUrn
        - entityType
        - changeType
        - aspectName
      properties:
        entityUrn:
          type: string
          description: >-
            The unique URN identifier for the entity being changed.
          example: urn:li:dataset:(urn:li:dataPlatform:hive,SampleHiveDataset,PROD)
        entityType:
          type: string
          description: >-
            The type of the entity being changed, such as dataset, chart,
            dashboard, dataFlow, dataJob, corpUser, corpGroup, tag, domain,
            glossaryTerm, or glossaryNode.
          example: dataset
        changeType:
          type: string
          description: >-
            The type of change that occurred on the aspect.
          enum:
            - UPSERT
            - DELETE
            - CREATE
            - RESTATE
        aspectName:
          type: string
          description: >-
            The name of the entity aspect that was changed, such as
            datasetProperties, schemaMetadata, ownership, globalTags,
            glossaryTerms, or status.
          example: globalTags
        aspect:
          $ref: '#/components/schemas/SerializedAspect'
        previousAspectValue:
          $ref: '#/components/schemas/SerializedAspect'
        systemMetadata:
          $ref: '#/components/schemas/SystemMetadata'
        created:
          $ref: '#/components/schemas/AuditStamp'
    EntityChangeEventPayload:
      type: object
      description: >-
        Payload of an Entity Change Event representing a semantic change
        in the DataHub metadata graph.
      required:
        - entityUrn
        - entityType
        - category
        - operation
      properties:
        entityUrn:
          type: string
          description: >-
            The unique URN identifier for the entity that was changed.
          example: urn:li:dataset:(urn:li:dataPlatform:hive,SampleHiveDataset,PROD)
        entityType:
          type: string
          description: >-
            The type of the entity that was changed.
          example: dataset
        category:
          type: string
          description: >-
            The category of the change, representing the semantic domain
            of the modification.
          enum:
            - TAG
            - GLOSSARY_TERM
            - OWNERSHIP
            - TECHNICAL_SCHEMA
            - DOCUMENTATION
            - DOMAIN
            - DEPRECATION
            - LIFECYCLE
        operation:
          type: string
          description: >-
            The semantic operation that was performed.
          enum:
            - ADD
            - REMOVE
            - MODIFY
        modifier:
          type: string
          description: >-
            Additional context about the change, such as the specific tag
            URN or glossary term URN that was added or removed.
          example: urn:li:tag:PII
        parameters:
          type: object
          description: >-
            Additional parameters providing context for the change event.
          additionalProperties:
            type: string
        auditStamp:
          $ref: '#/components/schemas/AuditStamp'
    SerializedAspect:
      type: object
      description: >-
        A serialized aspect value containing the content type and the
        JSON-encoded aspect payload.
      properties:
        contentType:
          type: string
          description: >-
            The content type of the serialized aspect value.
          example: application/json
        value:
          type: string
          description: >-
            The JSON-serialized aspect value following the PDL schema
            definition for the given aspect name.
    SystemMetadata:
      type: object
      description: >-
        System-level metadata associated with a metadata change, providing
        provenance and tracking information.
      properties:
        runId:
          type: string
          description: >-
            The identifier of the ingestion run that produced this change.
        lastObserved:
          type: integer
          format: int64
          description: >-
            The timestamp when this metadata was last observed in epoch
            milliseconds.
        registryName:
          type: string
          description: >-
            The name of the model registry associated with this change.
        registryVersion:
          type: string
          description: >-
            The version of the model registry.
    AuditStamp:
      type: object
      description: >-
        An audit stamp recording who made a change and when.
      properties:
        time:
          type: integer
          format: int64
          description: >-
            The timestamp of the change in epoch milliseconds.
        actor:
          type: string
          description: >-
            The URN of the actor who made the change.
          example: urn:li:corpuser:datahub