Data Contract

drn:decathlon-com:member::streaming:Member:sha256/84687307099f8f730c816cc3196e84e0494b11724c0ab24867e5d9c100bbc266 Data Contract Specification v1.1.0
demo-project

Info

Information about the data contract

Title
com.decathlon:member-streaming-schemas-demo
Version
1.9.0
Status
active
Description
A member event containing exhaustive type
Owner
streaming
groupId
com.decathlon
artifactId
member-streaming-schemas-demo

Servers

Servers of the data contract

  • Server
    preproduction-europe
    Environment
    preproduction
    Type
    kafka
    Host
    ${member_streaming_platform_kafka_preprod_europe_url}
    Topic
    local.dkt-member.streaming.restricted.fact.demo-member-event.v1.avro local.dkt-member.streaming.restricted.fact.demo-member-event.v1.json local.dkt-member.streaming.private.cdc.member-event.v1.avro local.dkt-member.streaming.private.fact.demo-member-event.v1.avro local.dkt-member.streaming.mirrored.fact.demo-member-event.v1.avro local.dkt-member.streaming.mirrored.fact.demo-member-identifier.v1.avro local.dkt-member.streaming.private.stream.demo-member-event.v1.avro local.dkt-member.streaming.public.fact.demo-member-event.v2.avro local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-retry-0 local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-retry-1 local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-DLQ
    Format
    avro

Terms

Terms and conditions of the data contract

Usage
Use for testing and demoing purpose in streaming team. This Data contract should not be use in production.
Limitations
None

Entity Relationship Diagram

Visual representation of data model relationships

                    erDiagram
	"**MemberIdentifier**" {
	memberId string
}
	"**MemberEventLight**" {
	memberId string
	memberName string
	memberData string
}
	"**MemberEvent**" {
	memberId string
	memberName string
	memberData string
	localTimestamp timestamp
	booleanField boolean
	intField int
	longField long
	doubleField double
	stringField string
	arrayField array
	recordField object
	nullableLocalTimestamp timestamp
	nullableBooleanField boolean
	nullableIntField int
	nullableLongField long
	nullableDoubleField double
	nullableStringField string
	nullableArrayField array
	nullableRecordField record
	enumField string
	decimalField decimal
	mainExternalReference com_decathlon_member_streaming_domain_avro_v1_ExternalReference
	secondaryExternalReferences array
}


                  

Data Model

The logical data model

MemberIdentifier object
A dummy member event identifier object
topics: [{'name': 'local.dkt-member.streaming.mirrored.fact.demo-member-identifier.v1.avro', 'compatibility': 'FULL_TRANSITIVE', 'retention': '15d'}]
memberId
string
Unique UUID for a member
Examples: 243c25e5-a081-43a9-aeab-6d5d5b6cb5e2
format:uuid restricted PII
MemberEventLight object
A dummy member event
topics: [{'name': 'local.dkt-member.streaming.restricted.fact.demo-member-event.v1.avro', 'compatibility': 'FULL_TRANSITIVE', 'retention': '15d'}]
memberId
string
Unique identifier of a member
Examples: 243c25e5-a081-43a9-aeab-6d5d5b6cb5e2
format:uuid restricted PII
memberName
string
Name of a user
metadata:{'tags': [{'name': 'Security.PII', 'description': 'This data field contains Personal Identifiable Information (PII)', 'externalDocs': {}}]}
memberData
string
Data of a user
MemberEvent object
A dummy member event
topics: [{'name': 'local.dkt-member.streaming.private.cdc.member-event.v1.avro', 'compatibility': 'FULL_TRANSITIVE'}, {'name': 'local.dkt-member.streaming.private.fact.demo-member-event.v1.avro', 'compatibility': 'FULL_TRANSITIVE'}, {'name': 'local.dkt-member.streaming.mirrored.fact.demo-member-event.v1.avro', 'compatibility': 'FULL_TRANSITIVE'}, {'name': 'local.dkt-member.streaming.private.stream.demo-member-event.v1.avro', 'compatibility': 'FULL_TRANSITIVE'}, {'name': 'local.dkt-member.streaming.public.fact.demo-member-event.v2.avro', 'compatibility': 'FULL_TRANSITIVE'}, {'name': 'local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-retry-0', 'compatibility': 'FULL_TRANSITIVE'}, {'name': 'local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-retry-1', 'compatibility': 'FULL_TRANSITIVE'}, {'name': 'local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-DLQ', 'compatibility': 'FULL_TRANSITIVE'}]
memberId
string
Unique identifier of a member
Examples: 243c25e5-a081-43a9-aeab-6d5d5b6cb5e2
format:uuid restricted PII
memberName
string
Name of a user
metadata:{'tags': [{'name': 'Security.PII', 'description': 'This data field contains Personal Identifiable Information (PII)', 'externalDocs': {}}]}
memberData
string
Data of a user
localTimestamp
timestamp
The local timestamp when the event occurred
required
booleanField
boolean
A boolean flag indicating a true or false value
required
intField
int
An integer field typically used for numerical values
required
longField
long
A long integer field for larger numerical values
required
doubleField
double
A double-precision floating-point field for decimal values
required
stringField
string
A string field for textual data
required
arrayField
array
An array field consisting of a list of strings
required
 
items
string
No description
recordField
object
No description
required name:NestedRecord
 
nestedStringField
string
A nested string field within the record
required
 
nestedIntField
int
A nested integer field within the record
required
nullableLocalTimestamp
timestamp
The local timestamp when the event occurred, which can be null
nullableBooleanField
boolean
A boolean flag indicating a true or false value, which can be null
nullableIntField
int
An integer field typically used for numerical values, which can be null
nullableLongField
long
A long integer field for larger numerical values, which can be null
nullableDoubleField
double
A double-precision floating-point field for decimal values, which can be null
nullableStringField
string
A string field for textual data, which can be null
nullableArrayField
array
An array field consisting of a list of strings, which can be null
 
items
string
No description
nullableRecordField
record
A complex field containing nested data, which can be null
name:NullableNestedRecord
 
nullableNestedStringField
string
A nested string field within the record, which can be null
 
nullableNestedIntField
int
A nested integer field within the record, which can be null
EnumFieldType
enumField
string
A enum field with UNKNOWN as default value, which can be null
Enum: VALUE_1, VALUE_2, UNKNOWN
required
decimalField
decimal
A decimal field with scale and precision, which can be null
precision:38 scale:4
mainExternalReference
com.decathlon.member.streaming.domain.avro.v1.ExternalReference
A reference to an external type which can be null
secondaryExternalReferences
array
set of reference to an external resource, which can be null
 
items
com.decathlon.member.streaming.domain.avro.v1.ExternalReference
No description

Definitions

Domain specific definitions in the data contract

memberId
Unique identifier
memberId
string
Unique identifier
Examples: 243c25e5-a081-43a9-aeab-6d5d5b6cb5e2
format:uuid restricted PII required:False config:{'avroType': 'string', 'avroLogicalType': 'uuid', 'avroDefault': None}

Service Levels

Service levels of the data contract

Retention

Description
Data is retained for 7 days
Period
7d
Created at 09 Jul 2026 10:21:04 UTC with Data Contract CLI v0.10.35
dataContractSpecification: 1.1.0
id: drn:decathlon-com:member::streaming:Member:sha256/84687307099f8f730c816cc3196e84e0494b11724c0ab24867e5d9c100bbc266
info:
  title: com.decathlon:member-streaming-schemas-demo
  version: 1.9.0
  status: active
  description: A member event containing exhaustive type
  owner: streaming
  contact:
    name: ce-member-streaming
    url: https://decathlondigital.slack.com/archives/C0428TLEHTR
    email: [email protected]
  groupId: com.decathlon
  artifactId: member-streaming-schemas-demo
servers:
  preproduction-europe:
    type: kafka
    environment: preproduction
    format: avro
    host: ${member_streaming_platform_kafka_preprod_europe_url}
    topic: 'local.dkt-member.streaming.restricted.fact.demo-member-event.v1.avro

      local.dkt-member.streaming.restricted.fact.demo-member-event.v1.json

      local.dkt-member.streaming.private.cdc.member-event.v1.avro

      local.dkt-member.streaming.private.fact.demo-member-event.v1.avro

      local.dkt-member.streaming.mirrored.fact.demo-member-event.v1.avro

      local.dkt-member.streaming.mirrored.fact.demo-member-identifier.v1.avro

      local.dkt-member.streaming.private.stream.demo-member-event.v1.avro

      local.dkt-member.streaming.public.fact.demo-member-event.v2.avro

      local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-retry-0

      local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-retry-1

      local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-DLQ

      '
terms:
  usage: 'Use for testing and demoing purpose in streaming team.

    This Data contract should not be use in production.

    '
models:
  MemberIdentifier:
    description: A dummy member event identifier object
    type: object
    namespace: com.decathlon.member.streaming.domain.avro.v1
    fields:
      memberId:
        $ref: '#/definitions/memberId'
        type: string
        format: uuid
        required: false
        description: Unique UUID for a member
        pii: true
        classification: restricted
        examples:
        - 243c25e5-a081-43a9-aeab-6d5d5b6cb5e2
        config:
          avroType: string
          avroLogicalType: uuid
          avroDefault: null
    config:
      topics:
      - name: local.dkt-member.streaming.mirrored.fact.demo-member-identifier.v1.avro
        compatibility: FULL_TRANSITIVE
        retention: 15d
    topics:
    - name: local.dkt-member.streaming.mirrored.fact.demo-member-identifier.v1.avro
      compatibility: FULL_TRANSITIVE
      retention: 15d
  MemberEventLight:
    description: A dummy member event
    type: object
    namespace: com.decathlon.member.streaming.domain.avro.v1
    fields:
      memberId:
        $ref: '#/definitions/memberId'
        type: string
        format: uuid
        required: false
        description: Unique identifier of a member
        pii: true
        classification: restricted
        examples:
        - 243c25e5-a081-43a9-aeab-6d5d5b6cb5e2
        config:
          avroType: string
          avroLogicalType: uuid
          avroDefault: null
      memberName:
        type: string
        required: false
        description: Name of a user
        config:
          avroDefault: null
        metadata:
          tags:
          - name: Security.PII
            description: This data field contains Personal Identifiable Information
              (PII)
            externalDocs: {}
      memberData:
        type: string
        required: false
        description: Data of a user
        config:
          avroDefault: null
    config:
      topics:
      - name: local.dkt-member.streaming.restricted.fact.demo-member-event.v1.avro
        compatibility: FULL_TRANSITIVE
        retention: 15d
    topics:
    - name: local.dkt-member.streaming.restricted.fact.demo-member-event.v1.avro
      compatibility: FULL_TRANSITIVE
      retention: 15d
  MemberEvent:
    description: A dummy member event
    type: object
    namespace: com.decathlon.member.streaming.domain.avro.v1
    fields:
      memberId:
        $ref: '#/definitions/memberId'
        type: string
        format: uuid
        required: false
        description: Unique identifier of a member
        pii: true
        classification: restricted
        examples:
        - 243c25e5-a081-43a9-aeab-6d5d5b6cb5e2
        config:
          avroType: string
          avroLogicalType: uuid
          avroDefault: null
      memberName:
        type: string
        required: false
        description: Name of a user
        config:
          avroDefault: null
        metadata:
          tags:
          - name: Security.PII
            description: This data field contains Personal Identifiable Information
              (PII)
            externalDocs: {}
      memberData:
        type: string
        required: false
        description: Data of a user
        config:
          avroDefault: null
      localTimestamp:
        type: timestamp
        required: true
        description: The local timestamp when the event occurred
        config:
          avroType: long
          avroLogicalType: local-timestamp-millis
      booleanField:
        type: boolean
        required: true
        description: A boolean flag indicating a true or false value
        config:
          avroDefault: false
      intField:
        type: int
        required: true
        description: An integer field typically used for numerical values
        config:
          avroDefault: 0
      longField:
        type: long
        required: true
        description: A long integer field for larger numerical values
        config:
          avroDefault: 0
      doubleField:
        type: double
        required: true
        description: A double-precision floating-point field for decimal values
        config:
          avroDefault: 0.0
      stringField:
        type: string
        required: true
        description: A string field for textual data
        config:
          avroDefault: ''
      arrayField:
        type: array
        required: true
        description: An array field consisting of a list of strings
        items:
          type: string
        config:
          avroDefault: []
      recordField:
        type: object
        required: true
        fields:
          nestedStringField:
            type: string
            required: true
            description: A nested string field within the record
            config:
              avroDefault: ''
          nestedIntField:
            type: int
            required: true
            description: A nested integer field within the record
            config:
              avroDefault: 0
        config:
          avroDefault:
            nestedStringField: ''
            nestedIntField: 0
        name: NestedRecord
      nullableLocalTimestamp:
        type: timestamp
        required: false
        description: The local timestamp when the event occurred, which can be null
        config:
          avroType: long
          avroLogicalType: local-timestamp-millis
          avroDefault: null
      nullableBooleanField:
        type: boolean
        required: false
        description: A boolean flag indicating a true or false value, which can be
          null
        config:
          avroDefault: null
      nullableIntField:
        type: int
        required: false
        description: An integer field typically used for numerical values, which can
          be null
        config:
          avroDefault: null
      nullableLongField:
        type: long
        required: false
        description: A long integer field for larger numerical values, which can be
          null
        config:
          avroDefault: null
      nullableDoubleField:
        type: double
        required: false
        description: A double-precision floating-point field for decimal values, which
          can be null
        config:
          avroDefault: null
      nullableStringField:
        type: string
        required: false
        description: A string field for textual data, which can be null
        config:
          avroDefault: null
      nullableArrayField:
        type: array
        required: false
        description: An array field consisting of a list of strings, which can be
          null
        items:
          type: string
        config:
          avroDefault: null
      nullableRecordField:
        type: record
        required: false
        description: A complex field containing nested data, which can be null
        fields:
          nullableNestedStringField:
            type: string
            required: false
            description: A nested string field within the record, which can be null
            config:
              avroDefault: null
          nullableNestedIntField:
            type: int
            required: false
            description: A nested integer field within the record, which can be null
            config:
              avroDefault: null
        config:
          avroDefault: null
        name: NullableNestedRecord
      enumField:
        title: EnumFieldType
        type: string
        required: true
        description: A enum field with UNKNOWN as default value, which can be null
        enum:
        - VALUE_1
        - VALUE_2
        - UNKNOWN
        config:
          avroDefault: UNKNOWN
          avroType: enum
      decimalField:
        type: decimal
        required: false
        description: A decimal field with scale and precision, which can be null
        precision: 38
        scale: 4
        config:
          avroLogicalType: decimal
          avroType: bytes
          avroDefault: null
      mainExternalReference:
        type: com.decathlon.member.streaming.domain.avro.v1.ExternalReference
        required: false
        description: A reference to an external type which can be null
        config:
          avroDefault: null
      secondaryExternalReferences:
        type: array
        required: false
        description: set of reference to an external resource, which can be null
        items:
          type: com.decathlon.member.streaming.domain.avro.v1.ExternalReference
        config:
          avroDefault: null
    config:
      topics:
      - name: local.dkt-member.streaming.private.cdc.member-event.v1.avro
        compatibility: FULL_TRANSITIVE
      - name: local.dkt-member.streaming.private.fact.demo-member-event.v1.avro
        compatibility: FULL_TRANSITIVE
      - name: local.dkt-member.streaming.mirrored.fact.demo-member-event.v1.avro
        compatibility: FULL_TRANSITIVE
      - name: local.dkt-member.streaming.private.stream.demo-member-event.v1.avro
        compatibility: FULL_TRANSITIVE
      - name: local.dkt-member.streaming.public.fact.demo-member-event.v2.avro
        compatibility: FULL_TRANSITIVE
      - name: local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-retry-0
        compatibility: FULL_TRANSITIVE
      - name: local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-retry-1
        compatibility: FULL_TRANSITIVE
      - name: local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-DLQ
        compatibility: FULL_TRANSITIVE
    topics:
    - name: local.dkt-member.streaming.private.cdc.member-event.v1.avro
      compatibility: FULL_TRANSITIVE
    - name: local.dkt-member.streaming.private.fact.demo-member-event.v1.avro
      compatibility: FULL_TRANSITIVE
    - name: local.dkt-member.streaming.mirrored.fact.demo-member-event.v1.avro
      compatibility: FULL_TRANSITIVE
    - name: local.dkt-member.streaming.private.stream.demo-member-event.v1.avro
      compatibility: FULL_TRANSITIVE
    - name: local.dkt-member.streaming.public.fact.demo-member-event.v2.avro
      compatibility: FULL_TRANSITIVE
    - name: local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-retry-0
      compatibility: FULL_TRANSITIVE
    - name: local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-retry-1
      compatibility: FULL_TRANSITIVE
    - name: local.dkt-member.streaming.public.fact.demo-member-event.v2.avro-DLQ
      compatibility: FULL_TRANSITIVE
definitions:
  memberId:
    description: Unique identifier
    type: string
    format: uuid
    pii: true
    classification: restricted
    examples:
    - 243c25e5-a081-43a9-aeab-6d5d5b6cb5e2
    required: false
    config:
      avroType: string
      avroLogicalType: uuid
      avroDefault: null
servicelevels:
  retention:
    description: Data is retained for 7 days
    period: 7d
    unlimited: false
links:
  doc: https://framework.eu.member.decathlon.net/streaming/10-streaming-application/
  repo: https://github.com/dktunited/member-streaming-platform-demo/tree/main/app/member-streaming-schemas-demo
tags:
- demo-project