Skip to content

Real-Time Data Sharing outline#11399

Draft
quinntracy wants to merge 2 commits into
developmentfrom
qt-datasharing
Draft

Real-Time Data Sharing outline#11399
quinntracy wants to merge 2 commits into
developmentfrom
qt-datasharing

Conversation

@quinntracy

Copy link
Copy Markdown
Collaborator

No description provided.

@quinntracy quinntracy self-assigned this Jun 23, 2026
* **Standardized Contracts** – AsyncAPI 3.0 contracts define stream schemas and metadata

### Change Event Streams

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there additional information we should add here?


Change events are published to Kafka topics and consumed by downstream systems.

## Known Limitations

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need additional details on multi-node deployment

## Modeling

### Modeling the Change Event Stream

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where does this occur in Studio Pro?


#### Exporting the Contract

Contracts are exported as AsyncAPI 3.0 documents with the following mappings:

@quinntracy quinntracy Jun 23, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a note in the original document about further explanation on Async API 3.0 being used in change stream contracts and how the fields are mapped. Will that be added here or elsewhere?

Event Broker and Kafka-compatible systems provide multiple configuration options beyond basic constants. Event Broker configuration is available in app settings, similar to database or workflow configuration.

### Connection

@quinntracy quinntracy Jun 23, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the user need to follow any additional steps to configure? We will want to provide further instruction on where this happens in the Event Broker (where to go in the Settings, potential screenshots)

Configure the following connection settings:

* **Server URL** –
* **Authentication** – Username and password

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any additional information needed for the server URL?

* **Authentication Type** – Mendix Cloud, SASL, AWS, Confluent, or other compatible authentication mechanisms

### Publishing

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any additional information needed?


### Topic Naming

Configure how streams map to Kafka topics:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any additional information needed?


## Metamodel

The current metamodel has limited support for expressing streams as a concept. Future versions may introduce native stream representations rather than adapting existing metamodel components.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably focus on just what the current metamodel can do, as we do want to promise what a future may or may not be able to do.


### Using an Independent CDC Component

An external CDC component (such as Debezium) reads database changes from the Write Ahead Log (WAL) and publishes them to Kafka. This approach has several limitations in the Mendix context:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The way this reads seems to encourage users to use the Mendix Runtime to implement. Is that the goal, or can a user effectively use an independent CDC component? We may want to rephrase this section to state more that it is possible to use an independent CDC but have a warning box that explains the challenges they may encounter.


## Non-Functional Requirements

Real-Time Data Sharing addresses the following non-functional requirements:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to expand upon these requirements (explain them in further depth) or just list them as they currenty are below?


The outbox pattern ensures reliable delivery. Events are persisted locally before publishing, and remain in the outbox until successfully delivered.

## Historical Data and Snapshots

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There was an additional to-do in this section "ADR on snapshots." What else needs to be added and will it be here or elsewhere?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant