Introduction
Multiwoven protocol defines a set of interfaces for building connectors. Connectors can be implemented independent of our server application, this protocol allows developers to create connectors without requiring in-depth knowledge of our core platform.Concepts
Source - A source in business data storage typically refers to data warehouses like Snowflake, AWS Redshift and Google BigQuery, as well as databases. Destination - A destination is a tool or third party service where source data is sent and utilised, often by end-users. It includes CRM systems, ad platforms, marketing automation, and support tools. Stream - A Stream defines the structure and metadata of a resource, such as a database table, REST API resource, or data stream, outlining how users can interact with it using query or request. Fields
Catalog - A Catalog is a collection of Streams detailing the data within a data store represented by a Source/Destination eg: Catalog = Schema, Streams = List[Tables]
Fields
Rate limit specified in catalog will applied to stream if there is no stream specific
rate limit is defined.
name(optional): A string representing the name of the model.query: A string representing the query used to extract data from the source.query_type: A type representing the type of query used by the model.primary_key: A string representing the primary key of the model.
source: The source connector from which data is transferred.destination: The destination connector where data is transferred.model: The model specifying the data to be transferred.stream: The stream defining the structure and metadata of the data to be transferred.sync_mode: The synchronization mode determining how data is transferred.cursor_field(optional): The field used as a cursor for incremental data transfer.destination_sync_mode: The synchronization mode at the destination.
Interfaces
The output of each method in the interface is encapsulated in an MultiwovenMessage, serving as an envelope for the message’s return value. These are omitted in interface explanations for sake of simplicity.Common
connector_spec() -> ConnectorSpecification
None
Output - ConnectorSpecification
-One of the main pieces of information the specification shares is what information is needed to configure an Actor.
-
documentation_url:
URL providing information about the connector. -
stream_type:
The type of stream supported by the connector. Possible values include:static: The connector catalog is static.dynamic: The connector catalog is dynamic, which can be either schemaless or with a schema.user_defined: The connector catalog is defined by the user.
-
connector_query_type:
The type of query supported by the connector. Possible values include:raw_sql: The connector is SQL-based.soql: Specifically for Salesforce.ai_ml: Specific for AI model source connectors.
-
connection_specification:
The properties required to connect to the source or destination. -
sync_mode:
The synchronization modes supported by the connector.
meta_data() -> Hash
None
Output - Hash. Sample hash can be found here
check_connection(connection_config) -> ConnectionStatus
Hash
Output - ConnectionStatus
discover(connection_config) -> Catalog
Hash
Output - Catalog
Source
Source implements the following interface methods including the common methods.read(SyncConfig) ->Array[RecordMessage]
Destination
Destination implements the following interface methods including the common methods.write(SyncConfig,Array[records]) -> TrackingMessage
Array[Record]
Output - TrackingMessage
Note: Complete multiwoven protocol models can be found here