Skip to main content

Joyce URIs

Everything that goes around Joyce can be identified by a unique URI (Unified Resource Identifier).

It help understand what the content is and is often used as message key in kafka topics to carry metadata about the content, it's also used as unique id to store contents by sinks.

The URI is shaped as follows:

joyce://TYPE/SUBTYPE/COLLECTION/[ID]

Components of the uri#

TYPE#

Is the type of object the uri represents, Joyce handles these thre types as of writing:

  • raw a content before getting transformed.
  • schema joyce schemas.
  • content content transformed.

SUBTYPE#

is a subtype of the object:

  • connect objects related to Kafka Connect.
  • import objects related to the Import Gateway and import phase.
  • model something used by the enterprise version.
  • other everything else

COLLECTION#

Identify the collection within the object belong, for a content it is the actual collection, for schema is the identifier of the schema that generates a collection of object.

The value is dyanmic and not fixed as the previous one.

ID#

A unique identifier for the object, identifies a single object inside a collection.

Could be optional for some objects like Schema.

Examples#

A schema:

joyce://schema/import/user

A transformed content:

joyce://content/import/user/1337

A content generated by kafka connect:

joyce://raw/connect/jdbc-user-table/1337

A content generated by an Import Gateway REST manual invokation:

joyce://raw/other/rest/123126354567