diff --git a/content/en/docs/marketplace/platform-supported-content/services/event-broker.md b/content/en/docs/marketplace/platform-supported-content/services/event-broker.md deleted file mode 100644 index e550103b5f0..00000000000 --- a/content/en/docs/marketplace/platform-supported-content/services/event-broker.md +++ /dev/null @@ -1,684 +0,0 @@ ---- -title: "Mendix Event Broker" -url: /appstore/services/event-broker/ -linktitle: "Event Broker" -description: "Mendix Event Broker" -aliases: ---- - -## Introduction - -Based on [Apache Kafka](https://kafka.apache.org/), the Mendix Event Broker is single-tenant and can only be used by apps running on nodes provisioned for your company. - -Events are published to a Kafka topic. Apps are subscribed to a Kafka topic to receive events, and messages use standard [CloudEvents payload format](https://github.com/cloudevents/spec/blob/v1.0.1/spec.md). - -There is a single Kafka broker for Free Apps that your company Free Apps can connect to. All Free Apps in your company publish and consume from the same Kafka broker. Events are published to one shared Kafka topic, and any Free App in your company can receive these events. - -## Mendix Event Broker License {#event-broker-license} - -Purchase a license to the Mendix Event Broker to deploy unlimited apps on production environments in Mendix Cloud. Ask your Customer Success Manager or Account Manager to reach out to purchase a license. See the [Mendix Event Broker](https://marketplace.mendix.com/link/component/202907) platform service page for more details. - -A license for the Mendix Event Broker is available for any Mendix region, but once selected, you can only run on a single region (no multi-region support). This license is available for all customers. You can also run business events on [your own Kafka cluster](/appstore/services/business-events-deployment/#byok). - -### Enabling the Mendix Event Broker Service {#enable-mx-event-broker} - -Once a license is purchased, a Technical Contact must enable the Event Broker Service on the [Mendix Portal](/developerportal/) for the [Mendix Cloud](/developerportal/deploy/mendix-cloud-deploy/) in the following places: - -1. On the app level under **Environments**, navigate to **Cloud Settings** ({{< icon name="settings-slider-1" >}}) and click [Services](/developerportal/deploy/environments/#services) -2. On the [Environment Details](/developerportal/deploy/environments-details/#services) page for each environment - -The Event Broker must be enabled on both the app and specific environment levels in order to use the Event Broker services. - -### Managing the Mendix Event Broker {#manage-mx-broker} - -Technical Contacts with a license for the Mendix Event Broker can manage its features on the [Event Broker Manager](https://broker.mendix.com/) page. - -#### Users for Event Broker Manager - -Users within the company's email domain that have a Mendix login can participate in the administration of the Mendix Event Broker as either a View or Admin user. They can also be blocked from participation. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_internal_user.png" >}} - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_internal_user_2.png" width="300" >}} - -Users that are not part of the customer organization (not within the email domain of the customer) can be invited with the same levels of access. Such users still require a standard Mendix login. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_external_user.png" width="300" >}} - -#### Spaces and Environments{#spaces} - -Spaces define which applications can exchange events with each other. When Business Events is enabled for an environment, it is placed in an Event Broker space based on the environment name. This enables apps deployed under the same space to publish and consume events. For example, apps in acceptance environment can only exchange events with other apps' acceptance environments. You can check the space of an app's environment on the [Event Broker Manager](https://broker.mendix.com/) page. - -Spaces are created and assigned based on the app environment name and allow isolation of your business events. The default behavior can be changed if needed. Contact [Mendix Support](https://support.mendix.com/) if you would like to change the space of a specific app environment. - -See the [Enabling the Mendix Event Broker Service](#enable-mx-event-broker) section above for more information. - -#### Topics and Channels {#topics-channels} - -Events are placed in channels, sometimes called topics. Apps subscribed to a channel will receive events published to this channel. - -Events published by Free Apps are published to one shared company channel on a multitenant free Event Broker. Events published by apps running on licensed nodes are published to their own channels on the company Event Broker. These channels, implemented as topics on Kafka, are automatically created upon deployment of the app publishing the events. - -#### Event Access Control {#access-control} - -The Mendix Event Broker allows access control to be applied down to the event level. Each application can be granted or denied access to events using the [Event Broker Manager](https://broker.mendix.com/). - -##### Types of Access - -The overview page contains a list of applications by environment within the organization's event landscape. The table contains columns that provide cases with exceptions: - -* **Implemented but no access** – an application has implemented an event that it is not allowed to access, guaranteeing a failure to subscribe to and/or publish the event -* **Has access but not implemented** – an application has been provided with more access than is required and you could make it more secure. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_access_control_overview.png" >}} - -Selecting the specific application provides an overview of the application's implemented events with their associated access. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_access_control_overview_2.png" >}} - -From this view, access to the individual events can be configured. Changes take effect immediately when **Apply Changes** is clicked. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_access_control_overview_3.png" width="300" >}} - -##### Default Behavior - -From the main overview page, an administrator can assign the default application behavior when they deploy to an environment for the first time by changing the configuration in the **Manage Default Access** dialog box. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_access_control_defaults.png" width="300" >}} - -From here, you can manage the default access settings: - -* **An app can access events defined in it** – enabling this setting allows newly-deployed applications to always have access to any events defined within that application (see [Creating a New Business Event Service](/appstore/services/business-events-configuration/#two-way-be-create) for more information) -* **For other events, in all environments, the app can:** - - * **Publish events it implements** - * **Subscribe to events it implements** - -## Mendix Event Broker Bridges {#manage-mx-broker-bridge} - -{{% alert color="info" %}} -Mendix Event Broker Bridges was released for GA in 11.4.0. -{{% /alert %}} - -Mendix Event Broker Bridges facilitate integration between the Mendix Event Broker and external technologies, such as AWS SQS, HTTP, Azure Blob Storage, AWS S3, and Apache Iceberg. These bridges enable the exchange of events between your Mendix Cloud environment and external systems, ensuring efficient communication across diverse technological landscapes. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_bridges.png" class="no-border" >}} - -### Standard Message Format - -Every event must carry four mandatory CloudEvents core attributes, each prefixed with `ce_`: - -* `ce_id` as id -* `ce_source` as source -* `ce_specversion` as specversion -* `ce_type` as type - -See [CloudEvents](https://github.com/cloudevents/spec/blob/v1.0.1/spec.md#required-attributes) for more information on required attributes. - -#### HTTP Bridge Headers - -For HTTP Bridges, specific headers are required for authentication. - -##### Required Header - -* **Authorization** – must be set as a Bearer token using the Personal Access Token (PAT) generated during bridge configuration; for example: `Authorization: Bearer ` - - For details on how to obtain your Bearer token, see [Using the HTTP Bridge](#using-the-http-bridge). - -##### Optional Headers - -You can include additional HTTP headers in your request to provide event metadata, such as: - -* `ce_time` – sets the published time of the event; for example: `2025-06-13T15:36:52.148542+02:00` - -All custom HTTP headers will be forwarded as Kafka headers by default. - -### Creating a Bridge - -Technical Contacts with a license to the Mendix Event Broker can manage this feature from the **Event Broker Bridges** tab on the [Event Broker Manager](https://broker.mendix.com/) page. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/event_broker_bridges_create.png" class="no-border" >}} - -1. Click **Create a Bridge** to create a new bridge. - -2. Select one of the following bridge types: - - * **AWS SQS** – bidirectional bridge using the [Amazon Simple Queue Service](https://aws.amazon.com/sqs/) to send and receive events - * **HTTP** – one-way bridge that uses HTTP requests to send events from external systems to the Mendix Event Broker - * **Azure Blob Storage** – one-way bridge that receives events via Azure object storage - * **AWS S3** – one-way bridge that receives events via AWS object storage - * **Iceberg** – one-way bridge that delivers [Change Data Capture (CDC)](/refguide/change-data-capture/) events to Apache Iceberg tables stored in AWS S3 or Azure Blob Storage - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/ebb_general_bridge_create.png" >}} - -3. Click **Next** to continue creating your bridge. - - * For instructions on configuring AWS SQS, see [Configuring a Bridge with AWS SQS](#bridge-with-aws-sqs). - * For instructions on configuring HTTP, see [Configuring a Bridge with HTTP](#bridge-with-http). - * For instructions on configuring Azure Blob Storage, see [Configuring a Bridge with Azure Blob Storage](#bridge-with-azure-blob-storage). - * For instructions on configuring AWS S3, see [Configuring a Bridge with AWS S3](#bridge-with-aws-s3). - * For instructions on configuring Iceberg, see [Configuring a Bridge with Iceberg](#bridge-with-iceberg). - -4. After configuring the service and connecting events (as described in the bridge-specific sections above), click **Start** on the confirmation screen to deploy the bridge. - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/ebb_general_bridge_start.png" >}} - -Once the bridge has been successfully deployed, its configuration and status can be viewed on the **Overview** page. - -### Configuring a Bridge with AWS SQS {#bridge-with-aws-sqs} - -The creation process for AWS SQS bridges includes two additional steps on the Mendix side and policies that need to be implemented on the AWS side. - -#### Configure Service - -1. Configure the service by filling out the following: - * **Event Broker Space** – the space where the bridge will operate - * **Name** – the name you want to call the bridge - * **AWS region** – the AWS region where your bridge operates - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-sqs/ebb_aws_sqs_configure.png" width="400" >}} - -2. Click **Next** to continue the configuration. - -#### Connect Events - -Select the business events to integrate with AWS SQS: - -1. Click **Add Business Events** to open a dialog displaying all events managed by the Event Broker, including Mendix app-defined events and uploaded AsyncAPI events. -2. Select the checkbox for the event(s) you want to add, then click **Select**. - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-sqs/ebb_aws_sqs_choose_events.png" width="400" >}} - -3. Configure each event with its own SQS URL for each direction the event will be integrated. - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-sqs/ebb_aws_sqs_connect_events.png" width="400" >}} - -4. Click **Next** to continue. - -5. Confirm the configuration with the AWS Access Policy. - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-sqs/ebb_aws_sqs_approve_policy.png" width="400" >}} - -6. After all events have been configured, click **Start** to start the Mendix Event Broker Bridge. This process will take several minutes to complete. - -#### Overview of AWS SQS Bridge - -Once the Mendix Event Broker Bridge has been successfully deployed, its configuration and status can be viewed on the **Overview** page. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-sqs/ebb_aws_sqs_overview.png" class="no-border" width="400" >}} - -#### Configure AWS Access Policy - -You need to configure AWS access policies for both sending and receiving messages. - -##### Sending Messages to Mendix - -Add the object below to the Access Policy of your AWS SQS queue if it is sending messages to Mendix. - -``` -{ - "Sid": "__sender_statement", - "Effect": "Allow", - "Principal": { - "AWS": [ - "arn:aws:iam::044806572671:role/mendix-event-broker-bridge" - ] - }, - "Action": [ - "SQS:SendMessage" - ], - "Resource": "" -} -``` - -##### Receiving Messages from Mendix - -Add the object below to your Access Policy of the AWS SQS queue if it is receiving messages from Mendix. - -``` -{ - "Sid": "__receiver_statement", - "Effect": "Allow", - "Principal": { - "AWS": [ - "arn:aws:iam::044806572671:role/mendix-event-broker-bridge" - ] - }, - "Action": [ - "SQS:ChangeMessageVisibility", - "SQS:DeleteMessage", - "SQS:ReceiveMessage" - ], - "Resource": "" -} -``` - -### Configuring a Bridge with HTTP {#bridge-with-http} - -#### Configure Service - -1. Configure the service by filling out the following: - - * **Event Broker Space** – the space where the bridge will operate - * **Name** – the name you want to call the bridge - * **AWS region** – the AWS region where your bridge operates - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/http/ebb_http_configure.png" width="400" >}} - -2. Click **Next** to connect events to your bridge. - -#### Connect Events - -Select the business events to integrate with the HTTP Bridge: - -1. Click **Add Business Events** to open a dialog displaying all events managed by the Event Broker, including Mendix app-defined events and uploaded AsyncAPI events. Only events capable of subscribing are shown, as this bridge operates in one direction. -2. Select the event(s) to integrate. Once selected, the URL for the HTTP connection is automatically generated. - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/http/ebb_http_connect_events.png" width="400" >}} - -3. Click **Next** to proceed to the confirmation screen. - -#### Overview of HTTP Bridge - -Once the Mendix Event Broker Bridge has been successfully deployed, its configuration and status can be viewed on the **Overview** page. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/http/ebb_http_overview.png" class="no-border" width="400" >}} - -#### Using the HTTP Bridge {#using-the-http-bridge} - -To run the HTTP bridge from your client, include a Bearer token in the request header. - -1. Open the HTTP bridge details using the **Options** ({{% icon name="three-dots-menu-horizontal" %}}) menu on the **Overview** page. -2. Add the **Bearer token**. - -### Configuring a Bridge with Azure Blob Storage {#bridge-with-azure-blob-storage} - -#### Configure Service - -1. Configure the service by filling out the following: - - * **Event Broker Space** – the space where the bridge will operate - * **Name** – the name you want to call the bridge - * **Storage Account** – the storage account to access - * **Storage SAS Token** – the storage SAS Token - * **Container Path** – the path of the container where the messages will be stored - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/azure-blob-storage/ebb_azure_blob_configure.png" >}} - -2. Click **Next** to connect events to your bridge. - -#### Connect Events - -Select the business events to integrate with Azure Blob Storage: - -1. Click **Add Business Events** to open a dialog displaying all events managed by the Event Broker, including Mendix app-defined events and uploaded AsyncAPI events. Only events capable of publishing are shown, as this bridge operates in one direction. -2. Select the event(s) to integrate and specify the prefix path for event storage. - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/azure-blob-storage/ebb_azure_blob_connect_events.png" >}} - -3. Click **Next** to proceed to the confirmation screen. - -#### Overview of Azure Blob Storage Bridge - -Once the Mendix Event Broker Bridge has been successfully deployed, its configuration and status can be viewed on the **Overview** page. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/azure-blob-storage/ebb_azure_blob_overview.png" class="no-border" >}} - -### Configuring a Bridge with AWS S3 {#bridge-with-aws-s3} - -#### Configure Service - -1. Configure the service by filling out the following: - - * **Event Broker Space** – the space where the bridge will operate - * **Name** – the name you want to call the bridge - * **Bucket** – the path of the container where the messages will be stored - * **AWS Region for Bucket** – the AWS region where your S3 bucket is located - * **AWS Role (to Assume)** – the Amazon Resource Name (ARN) of the IAM role that the Event Broker Bridge will assume to access your S3 bucket; this role must be configured with appropriate permissions and a trust policy allowing the Event Broker to assume it - * **AWS Role's External Id** – a unique identifier that provides additional security when the Event Broker assumes your AWS role; this shared secret ensures that only authorized Mendix Event Broker instances can assume the role - - {{% alert color="info" %}}For detailed instructions on how to create the IAM role and obtain these values, see [Configure AWS Authentication for S3 Bridge](#configure-aws-s3-authentication).{{% /alert %}} - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-s3/ebb_aws_s3_configure.png" >}} - -2. Click **Next** to connect events to your bridge. - -#### Connect Events - -Select the business events to integrate with AWS S3: - -1. Click **Add Business Events** to open a dialog displaying all events managed by the Event Broker, including Mendix app-defined events and uploaded AsyncAPI events. Only events capable of publishing are shown, as this bridge operates in one direction. -2. Select the event(s) to integrate and specify the prefix path for event storage. - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-s3/ebb_aws_s3_connect_events.png" >}} - -3. Click **Next** to proceed to the confirmation screen. - -#### Overview of AWS S3 Bridge - -Once the Mendix Event Broker Bridge has been successfully deployed, its configuration and status can be viewed on the **Overview** page. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-s3/ebb_aws_s3_overview.png" class="no-border" >}} - -#### Configure AWS Authentication for S3 Bridge {#configure-aws-s3-authentication} - -The Mendix Event Broker runs in AWS and uses cross-account authentication to securely access your S3 bucket. This authentication mechanism leverages AWS IAM roles with trust policies and external IDs to ensure secure, controlled access. - -##### Prerequisites - -* Access to your AWS account with permissions to create and manage IAM roles -* An S3 bucket where business events will be stored -* The Mendix Event Broker AWS account ID: `044806572671` - -##### Create an IAM Role with a Trust Policy - -The trust policy defines which AWS accounts can assume the role. - -1. Navigate to **IAM** > **Roles** in your AWS Console. -2. Click **Create role**. -3. Select **AWS account** as the trusted entity type. -4. Choose **Another AWS account**. -5. Enter the Mendix Event Broker AWS account ID: `044806572671` -6. Select **Require external ID** and enter a unique external ID of your choice. This external ID will be required when configuring the bridge in the Event Broker Manager. -7. Click **Next**. - -{{% alert color="info" %}} -The external ID acts as a shared secret between Mendix and your AWS account. This prevents the confused deputy problem and ensures that only authorized Event Broker instances can assume your role. -{{% /alert %}} - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-s3/ebb_aws_s3_create_a_cross_account_role_in_aws.png" class="no-border" width="400" >}} - -##### Attach Permissions Policy to the Role - -The permissions policy defines what actions the Event Broker can perform once the role is assumed. - -1. Click **Create policy** to create a new policy, or select an existing policy. -2. If creating a new policy, use the following JSON template to grant the necessary S3 permissions: - - ```json - { - "Version": "2012-10-17", - "Statement": [ - { - "Sid": "AllowWriteObjects", - "Effect": "Allow", - "Action": [ - "s3:PutObject", - "s3:PutObjectAcl", - "s3:DeleteObject" - ], - "Resource": "arn:aws:s3:::BUCKET_NAME/*" - }, - { - "Sid": "AllowListBucket", - "Effect": "Allow", - "Action": "s3:ListBucket", - "Resource": "arn:aws:s3:::BUCKET_NAME" - } - ] - } - ``` - -3. Replace `BUCKET_NAME` with your actual S3 bucket name. -4. Name your policy (for example, `EventBrokerS3WritePolicy`) and create it. -5. Attach the policy to your IAM role. -6. Click **Next**. - -{{% alert color="info" %}} -The policy above grants the minimum required permissions for the Event Broker to write business events to your S3 bucket. Adjust the permissions as needed based on your security requirements. -{{% /alert %}} - -##### Complete Role Creation - -1. Provide a name for your role (for example, `EventBrokerS3AccessRole`). -2. Review the role configuration and click **Create role**. -3. Once created, open the role and copy the **Role ARN** (it will look like this: `arn:aws:iam::YOUR_ACCOUNT_ID:role/EventBrokerS3AccessRole`). - -##### Configure the Bridge - -Use the Role ARN and External ID when configuring your AWS S3 bridge in the Event Broker Manager. - -### Configuring a Bridge with Iceberg {#bridge-with-iceberg} - -#### Configure Service - -1. Configure the service by filling out the following: - - * **Event Broker Space** – the space where the bridge operates - * **Name** – a name for the bridge - * **Choose a data lake** – the data lake that Iceberg uses to store your data - * **Azure Blob Storage** - * **Storage Account** – the storage account to access - * **Storage SAS Token** – the SAS token used to access the storage account - * **Container** – the container where the data is stored - * **AWS S3** - * **Bucket** – the bucket where the data is stored - * **AWS Region for Bucket** – the AWS region where the bucket is located - * **AWS Role (to Assume)** – the AWS role to assume for the required permissions - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/iceberg/ebb_iceberg_configure.png" alt="" width="400" >}} - -#### Connect Events - -Select the CDC events that you want to deliver from the Event Broker to Iceberg: - -1. Click **Add CDC Events** to open a dialog box displaying the available CDC events managed by the Event Broker. Only events that can be subscribed to are shown because the bridge delivers events in one direction, from the Event Broker to Iceberg. - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/iceberg/ebb_iceberg_connect_events.png" alt="" width="400" >}} - -2. Select one or more CDC events to integrate. The Iceberg connection configuration is automatically generated based on the selected events. - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/iceberg/ebb_iceberg_choose_cdc_events.png" alt="" width="400" >}} - -3. Click **Next** to review and confirm the bridge configuration. - -#### Overview of Iceberg Bridge - -After the bridge is created, you can view its configuration and status on the **Overview** page. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/iceberg/ebb_iceberg_overview.png" alt="" class="no-border" width="400" >}} - -Check the **Bridge Status** on the **Overview** page to verify that it is ready and operating as expected. The following list describes the possible bridge statuses. - -#### Bridge Statuses - -* **Halted** – The bridge has stopped because an internal component failed. Data is not being delivered. -* **Provisioning** – The bridge is being created or initialized and is not yet ready to deliver data. -* **Delivering** – The bridge is healthy, fully configured, and actively delivering data to the destination. -* **Misconfigured** – The bridge is running, but its data flow is not healthy or cannot be fully verified. Check the bridge configuration and data flow. -* **Reconfiguring** – The bridge is applying configuration changes. Data delivery may be temporarily interrupted until the new configuration is synchronized. -* **Awaiting Data** – The bridge is running and ready, but no source data is currently flowing. Data delivery will begin when data becomes available. - -### Managing Bridges - -After creating a bridge, you can modify and manage its configuration through the Event Broker Manager. - -#### Editing Bridges - -You can edit HTTP, Azure Blob Storage, AWS S3, and Iceberg bridges to modify their configuration as your integration requirements evolve, without needing to recreate the bridge. - -{{% alert color="info" %}}You can edit HTTP, Azure Blob Storage, and AWS S3 bridges only when their status is **Running**. You can edit an Iceberg bridge only when its status is **Delivering**.{{% /alert %}} - -You can edit: - -* **HTTP Bridge** – add or remove business events -* **Azure Blob Storage Bridge** – add or remove business events, update Storage Account, Storage SAS Token, Container Path, or Prefix Path -* **AWS S3 Bridge** – add or remove business events, update Bucket, AWS Region for Bucket, or Prefix Path -* **Iceberg Bridge** – add or remove CDC events - -To edit a bridge: - -1. On the [Event Broker Manager](https://broker.mendix.com/) page, navigate to the **Event Broker Bridges** tab. -2. Click the bridge you want to modify. -3. Click **Edit** to enter editing mode. - - In editing mode, you can perform the following actions: - - * **Add Business Events** (HTTP, Azure Blob Storage, and AWS S3): - - 1. Click **Add Business Events** to open a dialog that displays available events. - 2. Select the events you want to add and click **Select**. Added events will display an **Added** badge and can be removed before applying changes. - - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/edit-bridge/ebb_http_edit_mode.png" class="no-border" >}} - - * **Remove Business Events** (HTTP, Azure Blob Storage, and AWS S3): - - 1. Navigate to the event you want to remove and click **Remove**. Removed events will display a **Removed** badge, and their name and metadata will appear grayed out. - 2. Re-add a removed event by clicking **Add** before applying changes. - - * **Add CDC Events** (Iceberg): - - 1. Click **Add CDC Events** to open a dialog box that displays available CDC events. - 2. Select the CDC events you want to add and click **Select**. Added events display an **Added** badge and can be removed before applying changes. - - * **Remove CDC Events** (Iceberg): - - 1. Navigate to the CDC event you want to remove and click **Remove**. Removed events display a **Removed** badge, and their name and metadata appear grayed out. - 2. To re-add a removed CDC event, click **Add** before applying changes. - - * **Update Service Configuration** (Azure Blob Storage and AWS S3 only): - - * **Azure Blob Storage** – update the Storage Account, Storage SAS Token, Container Path, or Prefix Path as needed - * **AWS S3** – update the Bucket, AWS Region for Bucket, or Prefix Path as needed - - **HTTP** - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/edit-bridge/ebb_http_edit_mode.png" class="no-border" >}} - - **Azure Blob Storage** - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/edit-bridge/ebb_azure_blob_edit_mode.png" class="no-border" >}} - - **AWS S3** - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/edit-bridge/ebb_aws_s3_edit_mode.png" class="no-border" >}} - - **Iceberg** - {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/edit-bridge/ebb_iceberg_edit_mode.png" class="no-border" >}} - -4. Once you have made your changes, you can: - * Click **Apply** to save and apply the changes. A confirmation message will indicate if the changes were successful. Changes to the event configuration take effect when applied. After applying changes, the bridge status will change to **Reconfiguring** and will return to **Running** for HTTP, Azure Blob Storage, and AWS S3 bridges, or **Delivering** for Iceberg bridges, once the reconfiguration is complete. - * Click **Cancel** to exit editing mode without saving any changes. - -{{% alert color="info" %}} -The **Apply** button is only enabled when changes have been made to the bridge configuration. -{{% /alert %}} - -{{% alert color="warning" %}} -If an error occurs during the editing process, the bridge will automatically roll back to its previous running state to ensure continuity of service. -{{% /alert %}} - -## Externally Defined Events {#externally-defined-events} - -Externally defined events refer to events that are defined outside the Mendix application, specifically outside Studio Pro. - -The Mendix Event Broker allows users to upload an AsyncAPI document for these external events. Once uploaded, users can download a new AsyncAPI document compatible with [Mendix Business Events](/appstore/services/business-events/), which can then be imported into Studio Pro to share the events across Mendix applications or use them in a new [Bridge](#manage-mx-broker-bridge). - -### Upload Events - -Technical Contacts with a license to the Mendix Event Broker can manage this feature from the **Uploaded Events** tab on the [Event Broker Manager](https://broker.mendix.com/) page. - -To begin, click **Get Started** or **Upload AsyncAPI Document**. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_get_started.png" >}} - -#### Upload an AsyncAPI File - -Upload an AsyncAPI contract based on the [AsyncAPI format](#asyncapi-format). If there are any errors with the content or file format, an error box will display a list of the issues found. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_create_1.png" >}} - -#### Verify File Information - -The details of the uploaded file are extracted in the **Verify** section. This allows you to confirm that all information is accurate and meets the required expectations. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_create_2.png" >}} - -#### Choose Spaces - -Select the spaces where the events will be used. When at least one space is selected, the **Create Service** button will be enabled. Click **Create Service** to create the service. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_create_3.png" >}} - -#### Successful Page - -You will get a confirmation that the externally defined events have been successfully uploaded and are now ready to be used in Bridges or applications. - -Click **Close** to continue. - -For more information on how to use an event, see [Usages](#event-usages). - -### Overview Page - -After a service is uploaded, it can be viewed on the Overview page. This page presents a list of uploaded events, along with their corresponding services and the spaces selected for the AsyncAPI. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_overview.png" >}} - -### Events and Services Details - -From the Overview page, users can access the Event and Service details by clicking on the event or service name in the table. Each page includes a drop-down selection for a space, which allows you to manage services and events specific to that space. - -#### Event Details - -This page provides information about the uploaded event, including the event name, PUB/SUB details, attributes, and [usages](#event-usages). - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_event_page.png" >}} - -#### Service Details {#service-details} - -The services details page includes information about the uploaded services, including the service name, description, and associated events. You can also delete a service within the selected space (subject to [deletion conditions](#delete-service)) and download the AsyncAPI contract to import into an existing Mendix application (for more information, see [Application Usages](#usages-app)). - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_service_page.png" >}} - -### Event Usages {#event-usages} - -Once an AsyncAPI contract is successfully uploaded, it can be used through Bridges or applications. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_event_usages.png" >}} - -#### Bridges - -To use an uploaded event in a Bridge, you must configure a [Bridge with AWS SQS](#bridge-with-aws-sqs). During the step **Choose business events to connect**, the newly uploaded events in the selected space from the previous step will be visible. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_add_bridge.png" >}} - -#### Applications {#usages-app} - -To use an uploaded event in an application, download the AsyncAPI contract for Studio Pro and import it as a new business event in your Mendix application. The download button is available on the [Service Details](#service-details) page. - -Use the **Use an existing business event service** option to import the file as a new business event. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_import_file.png" >}} - -Click **OK**. This creates the new business event that is ready to be used with the same features as any other imported event. - -{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_imported_file.png" >}} - -### Delete Service {#delete-service} - -You can delete a service on the Service Details page. Deletion is only possible if the service is not being used in the selected space. This action is irreversible. If you want to re-upload the service to the space, you will need to upload the file again. - -{{% alert color="info" %}} - -Deleting a service only removes it from the selected space. The service will remain available in other spaces, if applicable. - -{{% /alert %}} - -### AsyncAPI Format {#asyncapi-format} - -Externally defined events are provided to the Event Broker via an AsyncAPI document, which must include the service information and event definitions. Any other content within the AsyncAPI document, if provided, will be ignored. - -The mandatory information required in the file includes: - -* **Title** – the service name -* **Message** – represents the business events -* **Payload** – the attributes that form the message - -{{% alert color="info" %}} - -Message names must be unique. Duplicate events cannot be uploaded if it is deployed anywhere in the Mendix space or uploaded before. - -{{% /alert %}} - -The supported version of AsyncAPI is 2.0.0, in accordance with [AsyncAPI documentation](https://v2.asyncapi.com/docs/reference/specification/v2.2.0). - -The file requirements are listed below: - -* Size: maximum file size is 1MB. -* Supported files: *.yml*, *.yaml*, *.json* diff --git a/content/en/docs/marketplace/platform-supported-content/services/event-broker/_index.md b/content/en/docs/marketplace/platform-supported-content/services/event-broker/_index.md new file mode 100644 index 00000000000..46f591a3e00 --- /dev/null +++ b/content/en/docs/marketplace/platform-supported-content/services/event-broker/_index.md @@ -0,0 +1,228 @@ +--- +title: "Mendix Event Broker" +url: /appstore/services/event-broker/ +linktitle: "Event Broker" +description: "Describes the Mendix Event Broker service, including licensing, configuration, access control, and externally defined events." +aliases: +--- + +## Introduction + +Based on [Apache Kafka](https://kafka.apache.org/), the Mendix Event Broker is single-tenant and can only be used by apps running on nodes provisioned for your company. + +Events are published to a Kafka topic. Apps are subscribed to a Kafka topic to receive events, and messages use standard [CloudEvents payload format](https://github.com/cloudevents/spec/blob/v1.0.1/spec.md). + +There is a single Kafka broker for Free Apps that your company Free Apps can connect to. All Free Apps in your company publish and consume from the same Kafka broker. Events are published to one shared Kafka topic, and any Free App in your company can receive these events. + +## Mendix Event Broker License {#event-broker-license} + +Purchase a license to the Mendix Event Broker to deploy unlimited apps on production environments in Mendix Cloud. Ask your Customer Success Manager or Account Manager to reach out to purchase a license. See the [Mendix Event Broker](https://marketplace.mendix.com/link/component/202907) platform service page for more details. + +A license for the Mendix Event Broker is available for any Mendix region, but once selected, you can only run on a single region (no multi-region support). This license is available for all customers. You can also run business events on [your own Kafka cluster](/appstore/services/business-events-deployment/#byok). + +### Enabling the Mendix Event Broker Service {#enable-mx-event-broker} + +Once a license is purchased, a Technical Contact must enable the Event Broker Service on the [Mendix Portal](/developerportal/) for the [Mendix Cloud](/developerportal/deploy/mendix-cloud-deploy/) in the following places: + +1. On the app level under **Environments**, navigate to **Cloud Settings** ({{< icon name="settings-slider-1" >}}) and click [Services](/developerportal/deploy/environments/#services) +2. On the [Environment Details](/developerportal/deploy/environments-details/#services) page for each environment + +The Event Broker must be enabled on both the app and specific environment levels in order to use the Event Broker services. + +## Managing the Mendix Event Broker {#manage-mx-broker} + +Technical Contacts with a license for the Mendix Event Broker can manage its features on the [Event Broker Manager](https://broker.mendix.com/) page. + +### Users for Event Broker Manager + +Users within the company's email domain that have a Mendix login can participate in the administration of the Mendix Event Broker as either a View or Admin user. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_internal_user.png" alt="" >}} + +They can also be blocked from participation. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_internal_user_2.png" alt="" width="300" >}} + +Users that are not part of the customer organization (not within the email domain of the customer) can be invited with the same levels of access. Such users still require a standard Mendix login. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_external_user.png" alt="" width="300" >}} + +### Spaces and Environments {#spaces} + +Spaces define which applications can exchange events with each other. When Business Events is enabled for an environment, it is placed in an Event Broker space based on the environment name. This enables apps deployed under the same space to publish and consume events. For example, apps in acceptance environment can only exchange events with other apps' acceptance environments. You can check the space of an app's environment on the [Event Broker Manager](https://broker.mendix.com/) page. + +Spaces are created and assigned based on the app environment name and allow isolation of your business events. The default behavior can be changed if needed. Contact [Mendix Support](https://support.mendix.com/) if you would like to change the space of a specific app environment. + +See the [Enabling the Mendix Event Broker Service](#enable-mx-event-broker) section above for more information. + +### Topics and Channels {#topics-channels} + +Events are placed in channels, sometimes called topics. Apps subscribed to a channel will receive events published to this channel. + +Events published by Free Apps are published to one shared company channel on a multitenant free Event Broker. Events published by apps running on licensed nodes are published to their own channels on the company Event Broker. These channels, implemented as topics on Kafka, are automatically created upon deployment of the app publishing the events. + +### Event Access Control {#access-control} + +The Mendix Event Broker allows access control to be applied down to the event level. Each application can be granted or denied access to events using the [Event Broker Manager](https://broker.mendix.com/). + +#### Types of Access + +The overview page contains a list of applications by environment within the organization's event landscape. The table contains columns that provide cases with exceptions: + +* **Implemented but no access** – an application has implemented an event that it is not allowed to access, guaranteeing a failure to subscribe to and/or publish the event +* **Has access but not implemented** – an application has been provided with more access than is required and you can make it more secure. + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_access_control_overview.png" alt="" >}} + +Selecting the specific application provides an overview of the application's implemented events with their associated access. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_access_control_overview_2.png" alt="" >}} + +From this view, access to the individual events can be configured. Changes take effect immediately when **Apply Changes** is clicked. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_access_control_overview_3.png" alt="" width="300" >}} + +#### Default Behavior + +From the main overview page, an administrator can assign the default application behavior when they deploy to an environment for the first time by changing the configuration in the **Manage Default Access** dialog box. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_access_control_defaults.png" alt="" width="300" >}} + +From here, you can manage the default access settings: + +* **An app can access events defined in it** – enabling this setting allows newly-deployed applications to always have access to any events defined within that application (see [Creating a New Business Event Service](/appstore/services/business-events-configuration/#two-way-be-create) for more information) +* **For other events, in all environments, the app can:** + + * **Publish events it implements** + * **Subscribe to events it implements** + +## Mendix Event Broker Bridges + +Mendix Event Broker Bridges facilitate integration between the Mendix Event Broker and external technologies. For information on creating and managing bridges, see [Mendix Event Broker Bridges](/appstore/services/event-broker-bridges/). + +Mendix Event Broker Bridges support integration with the following technologies: + +* [AWS SQS](/appstore/services/event-broker-bridges/aws-sqs-bridge/) +* [HTTP](/appstore/services/event-broker-bridges/http-bridge/) +* [Azure Blob Storage](/appstore/services/event-broker-bridges/blob-bridge/) +* [AWS S3](/appstore/services/aws-s3-bridge/) +* [Iceberg](/appstore/services/event-broker-bridges/iceberg-bridge/) + +## Externally Defined Events {#externally-defined-events} + +Externally defined events refer to events that are defined outside the Mendix application, specifically outside Studio Pro. + +The Mendix Event Broker lets you upload an AsyncAPI document for these external events. Once uploaded, you can download a new AsyncAPI document compatible with [Mendix Business Events](/appstore/services/business-events/), which can then be imported into Studio Pro to share the events across Mendix applications or use them in a new [bridge](/appstore/services/event-broker-bridges/). + +### Upload Events + +Technical Contacts with a license to the Mendix Event Broker can manage this feature from the **Uploaded Events** tab on the [Event Broker Manager](https://broker.mendix.com/) page. + +To begin, click **Get Started** or **Upload AsyncAPI Document**. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_get_started.png" alt="" >}} + +#### Upload an AsyncAPI File + +Upload an AsyncAPI contract based on the [AsyncAPI format](#asyncapi-format). If there are any errors with the content or file format, an error box will display a list of the issues found. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_create_1.png" alt="" >}} + +#### Verify File Information + +The details of the uploaded file are extracted in the **Verify** section. This allows you to confirm that all information is accurate and meets the required expectations. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_create_2.png" alt="" >}} + +#### Choose Spaces + +Select the spaces where the events will be used. When at least one space is selected, the **Create Service** button will be enabled. Click **Create Service** to create the service. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_create_3.png" alt="" >}} + +#### Successful Page + +A confirmation appears when the externally defined events are uploaded and ready to use in Bridges or applications. + +Click **Close** to continue. + +For more information on how to use an event, see [Usages](#event-usages). + +### Overview Page + +After a service is uploaded, it can be viewed on the Overview page. This page presents a list of uploaded events, along with their corresponding services and the spaces selected for the AsyncAPI. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_overview.png" alt="" >}} + +### Events and Services Details + +From the Overview page, you can access the Event and Service details by clicking the event or service name in the table. Each page includes a drop-down selection for a space, which allows you to manage services and events specific to that space. + +#### Event Details + +This page provides information about the uploaded event, including the event name, PUB/SUB details, attributes, and [usages](#event-usages). + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_event_page.png" alt="" >}} + +#### Service Details {#service-details} + +The services details page includes information about the uploaded services, including the service name, description, and associated events. You can also delete a service within the selected space (subject to [deletion conditions](#delete-service)) and download the AsyncAPI contract to import into an existing Mendix application (for more information, see [Application Usages](#usages-app)). + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_service_page.png" alt="" >}} + +### Event Usages {#event-usages} + +Once an AsyncAPI contract is successfully uploaded, it can be used through Bridges or applications. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_event_usages.png" alt="" >}} + +#### Bridges + +To use an uploaded event in a bridge, you must [configure a bridge with AWS SQS](/appstore/services/event-broker-bridges/aws-sqs-bridge/). During the step **Choose business events to connect**, the newly uploaded events in the selected space from the previous step will be visible. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_add_bridge.png" alt="" >}} + +#### Applications {#usages-app} + +To use an uploaded event in an application, download the AsyncAPI contract for Studio Pro and import it as a new business event in your Mendix application. The download button is available on the [Service Details](#service-details) page. + +Use the **Use an existing business event service** option to import the file as a new business event. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_import_file.png" alt="" >}} + +Click **OK**. This creates the new business event that is ready to be used with the same features as any other imported event. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_ede_imported_file.png" >}} + +### Delete Service {#delete-service} + +You can delete a service on the Service Details page. Deletion is only possible if the service is not being used in the selected space. This action is irreversible. If you want to re-upload the service to the space, you will need to upload the file again. + +{{% alert color="info" %}} + +Deleting a service only removes it from the selected space. The service will remain available in other spaces, if applicable. + +{{% /alert %}} + +### AsyncAPI Format {#asyncapi-format} + +Externally defined events are provided to the Event Broker via an AsyncAPI document, which must include the service information and event definitions. Any other content within the AsyncAPI document, if provided, is ignored. + +The mandatory information required in the file includes: + +* **Title** – the service name +* **Message** – represents the business events +* **Payload** – the attributes that form the message + +{{% alert color="info" %}} + +Message names must be unique. Duplicate events cannot be uploaded if they are deployed anywhere in the Mendix space or have been uploaded before. + +{{% /alert %}} + +The supported version of AsyncAPI is 2.0.0, in accordance with [AsyncAPI documentation](https://v2.asyncapi.com/docs/reference/specification/v2.2.0). + +The file requirements are: + +* Size: maximum file size is 1MB. +* Supported files: *.yml*, *.yaml*, *.json* diff --git a/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/_index.md b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/_index.md new file mode 100644 index 00000000000..1860054de86 --- /dev/null +++ b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/_index.md @@ -0,0 +1,54 @@ +--- +title: "Mendix Event Broker Bridges" +url: /appstore/services/event-broker-bridges/ +linktitle: "Event Broker Bridges" +description: "Describes how to create and manage Mendix Event Broker Bridges to integrate the Event Broker with external technologies such as AWS SQS, HTTP, Azure Blob Storage, AWS S3, and Apache Iceberg." +aliases: + - /appstore/services/event-broker/#manage-mx-broker-bridge +--- + +## Introduction + +{{% alert color="info" %}} +Mendix Event Broker Bridges were released for GA in 11.4.0. +{{% /alert %}} + +Mendix Event Broker Bridges integrate the Mendix Event Broker with external technologies, such as AWS SQS, HTTP, Azure Blob Storage, AWS S3, and Apache Iceberg. These bridges enable the exchange of events between your Mendix Cloud environment and external systems. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/event_broker_bridges.png" alt="" class="no-border" >}} + +## Standard Message Format + +Every event must include four CloudEvents core attributes, each prefixed with `ce_`: + +* `ce_id` as id +* `ce_source` as source +* `ce_specversion` as specversion +* `ce_type` as type + +See [CloudEvents](https://github.com/cloudevents/spec/blob/v1.0.1/spec.md#required-attributes) for more information on required attributes. + +## Creating a Bridge + +Technical Contacts with a license to the Mendix Event Broker can manage this feature from the **Event Broker Bridges** tab on the [Event Broker Manager](https://broker.mendix.com/) page. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/event_broker_bridges_create.png" alt="" class="no-border" >}} + +1. Click **Create a Bridge** to create a new bridge. + +2. Select one of the following bridge types: + + * [AWS SQS](/appstore/services/event-broker-bridges/aws-sqs-bridge/) + * [HTTP](/appstore/services/event-broker-bridges/http-bridge/) + * [Azure Blob Storage](/appstore/services/event-broker-bridges/blob-bridge/) + * [AWS S3](/appstore/services/aws-s3-bridge/) + * [Iceberg](/appstore/services/event-broker-bridges/iceberg-bridge/) + +3. Click **Next** to continue creating your bridge. +4. After configuring the service and connecting events (as described in the bridge-specific sections above), click **Start** on the confirmation screen to deploy the bridge. + +After the bridge deploys, you can view its configuration and status on the **Overview** page. + +## Managing Bridges + +After creating a bridge, you can modify and manage its configuration through the [Event Broker Manager](https://broker.mendix.com/p/connected-apps). \ No newline at end of file diff --git a/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/aws-s3-bridge.md b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/aws-s3-bridge.md new file mode 100644 index 00000000000..cc82c1dcfb9 --- /dev/null +++ b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/aws-s3-bridge.md @@ -0,0 +1,159 @@ +--- +title: "Configure a Bridge with AWS S3" +url: /appstore/services/event-broker-bridges/aws-s3-bridge/ +linktitle: "AWS S3 Bridge" +description: "How to configure and manage an AWS S3 bridge using the Mendix Event Broker." +--- + +## Introduction + +An AWS S3 Bridge is a one-way bridge that receives events via AWS object storage. + +## Configure Service + +1. Configure the service by filling out the following: + + * **Event Broker Space** – the space where the bridge will operate + * **Name** – the name you want to call the bridge + * **Bucket** – the path of the container where the messages will be stored + * **AWS Region for Bucket** – the AWS region where your S3 bucket is located + * **AWS Role (to Assume)** – the Amazon Resource Name (ARN) of the IAM role that the Event Broker Bridge will assume to access your S3 bucket; this role must be configured with appropriate permissions and a trust policy allowing the Event Broker to assume it + * **AWS Role's External Id** – a unique identifier that provides additional security when the Event Broker assumes your AWS role; this shared secret ensures that only authorized Mendix Event Broker instances can assume the role + + {{% alert color="info" %}}For instructions on creating the IAM role and obtaining these values, see the [Configure AWS Authentication](#configure-aws-s3-authentication) section below.{{% /alert %}} + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-s3/ebb_aws_s3_configure.png" alt="" >}} + +2. Click **Next** to connect events to your bridge. + +## Connect Events + +To connect business events to AWS S3, follow these steps: + +1. Click **Add Business Events** to open a dialog box that displays all events managed by the Event Broker, including Mendix app-defined events and uploaded AsyncAPI events. Only events that can publish appear, as this bridge operates in one direction. +2. Select the events to integrate and specify the prefix path for event storage. + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-s3/ebb_aws_s3_connect_events.png" alt="" >}} + +3. Click **Next** to proceed to the confirmation screen. + +## Editing Bridges + +You can edit an AWS S3 bridge to modify the configuration as your integration requirements evolve, without recreating it. For an AWS S3 bridge, you can: + +* Add or remove Business Events +* Update Bucket, AWS Region for Bucket, or Prefix Path + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/edit-bridge/ebb_aws_s3_edit_mode.png" alt="" class="no-border" >}} + +{{% alert color="info" %}}You can edit AWS S3 bridges only when the status is **Running**. {{% /alert %}} + +To edit a bridge: + +1. On the [Event Broker Manager](https://broker.mendix.com/) page, navigate to the **Event Broker Bridges** tab. +2. Click the bridge you want to modify. +3. Click **Edit** to enter editing mode. In editing mode, you can perform the following actions: + + * **Add Business Events**: + + 1. Click **Add Business Events** to open a dialog that displays available events. + 2. Select the events you want to add and click **Select**. Added events display an **Added** badge and can be removed before applying changes. + + * **Remove Business Events**: + + 1. Navigate to the event you want to remove and click **Remove**. Removed events display a **Removed** badge, and their name and metadata appear grayed out. + 2. Re-add a removed event by clicking **Add** before applying changes. + + * **Update Service Configuration**: + + * Update the Bucket, AWS Region for Bucket, or Prefix Path as needed + +4. After you make your changes, you can: + * Click **Apply** to save and apply the changes. A confirmation message indicates whether the changes were successful. Changes to the event configuration take effect when applied. After applying changes, the bridge status changes to **Reconfiguring** and returns to **Running** when reconfiguration is complete. + * Click **Cancel** to exit editing mode without saving any changes. + +{{% alert color="info" %}} +The **Apply** button is only enabled when changes have been made to the bridge configuration. +{{% /alert %}} + +{{% alert color="warning" %}} +If an error occurs during editing, the bridge automatically rolls back to its previous running state to ensure continuity of service. +{{% /alert %}} + +## Configure AWS Authentication {#configure-aws-s3-authentication} + +The Mendix Event Broker runs in AWS and uses cross-account authentication to securely access your S3 bucket. This authentication mechanism uses AWS IAM roles with trust policies and external IDs to ensure secure, controlled access. + +### Prerequisites + +* Access to your AWS account with permissions to create and manage IAM roles +* An S3 bucket where business events will be stored +* The Mendix Event Broker AWS account ID: `044806572671` + +### Create an IAM Role with a Trust Policy + +The trust policy defines which AWS accounts can assume the role. + +1. Navigate to **IAM** > **Roles** in your AWS Console. +2. Click **Create role**. +3. Select **AWS account** as the trusted entity type. +4. Choose **Another AWS account**. +5. Enter the Mendix Event Broker AWS account ID: `044806572671` +6. Select **Require external ID** and enter a unique external ID of your choice. You need this external ID when configuring the bridge in Event Broker Manager. +7. Click **Next**. + +{{% alert color="info" %}} +The external ID acts as a shared secret between Mendix and your AWS account. This prevents the confused deputy problem and ensures that only authorized Event Broker instances can assume your role. +{{% /alert %}} + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-s3/ebb_aws_s3_create_a_cross_account_role_in_aws.png" alt="" class="no-border" width="400" >}} + +### Attach Permissions Policy to the Role + +The permissions policy defines what actions the Event Broker can perform once the role is assumed. + +1. Click **Create policy** to create a new policy, or select an existing policy. +2. If creating a new policy, use the following JSON template to grant the necessary S3 permissions: + + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "AllowWriteObjects", + "Effect": "Allow", + "Action": [ + "s3:PutObject", + "s3:PutObjectAcl", + "s3:DeleteObject" + ], + "Resource": "arn:aws:s3:::BUCKET_NAME/*" + }, + { + "Sid": "AllowListBucket", + "Effect": "Allow", + "Action": "s3:ListBucket", + "Resource": "arn:aws:s3:::BUCKET_NAME" + } + ] + } + ``` + +3. Replace `BUCKET_NAME` with your actual S3 bucket name. +4. Name your policy (for example, `EventBrokerS3WritePolicy`) and create it. +5. Attach the policy to your IAM role. +6. Click **Next**. + +{{% alert color="info" %}} +The policy above grants the minimum required permissions for the Event Broker to write business events to your S3 bucket. Adjust the permissions as needed based on your security requirements. +{{% /alert %}} + +### Complete Role Creation + +1. Provide a name for your role (for example, `EventBrokerS3AccessRole`). +2. Review the role configuration and click **Create role**. +3. After creating the role, open it and copy the **Role ARN** (for example, `arn:aws:iam::YOUR_ACCOUNT_ID:role/EventBrokerS3AccessRole`). + +### Configure the Bridge + +Use the Role ARN and External ID when configuring your AWS S3 bridge in the Event Broker Manager. \ No newline at end of file diff --git a/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/aws-sqs-bridge.md b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/aws-sqs-bridge.md new file mode 100644 index 00000000000..4e2618a002a --- /dev/null +++ b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/aws-sqs-bridge.md @@ -0,0 +1,86 @@ +--- +title: "Configure a Bridge with AWS SQS" +url: /appstore/services/event-broker-bridges/aws-sqs-bridge/ +linktitle: "AWS SQS Bridge" +description: "How to configure and manage an AWS SQS bridge using the Mendix Event Broker." +--- + +## Introduction + +An AWS SQS Bridge is a bidirectional bridge using the [Amazon Simple Queue Service](https://aws.amazon.com/sqs/) to send and receive events. The creation process for AWS SQS bridges includes two additional steps on the Mendix side and policies you must configure on the AWS side. + +## Configure Service + +1. Configure the service by filling out the following: + * **Event Broker Space** – the space where the bridge will operate + * **Name** – the name you want to call the bridge + * **AWS region** – the AWS region where your bridge operates + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-sqs/ebb_aws_sqs_configure.png" alt="" width="400" >}} +2. Click **Next** to continue the configuration. + +## Connect Events + +To connect business events to AWS SQS, follow these steps: + +1. Click **Add Business Events** to open a dialog box that displays all events managed by the Event Broker, including Mendix app-defined events and uploaded AsyncAPI events. +2. Select the checkbox for the events you want to add, then click **Select**. + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-sqs/ebb_aws_sqs_choose_events.png" alt="" width="400" >}} + +3. Configure each event with its own SQS URL for each direction the event is integrated. + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-sqs/ebb_aws_sqs_connect_events.png" alt="" width="400" >}} + +4. Click **Next** to continue. + +5. Confirm the configuration with the AWS Access Policy. + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/aws-sqs/ebb_aws_sqs_approve_policy.png" alt="" width="400" >}} + +6. After all events have been configured, click **Start** to start the Mendix Event Broker Bridge. This process takes several minutes to complete. + +## Configure AWS Access Policy + +You need to configure AWS access policies for both sending and receiving messages. + +### Sending Messages to Mendix + +Add the object below to the Access Policy of your AWS SQS queue if it is sending messages to Mendix. + +``` +{ + "Sid": "__sender_statement", + "Effect": "Allow", + "Principal": { + "AWS": [ + "arn:aws:iam::044806572671:role/mendix-event-broker-bridge" + ] + }, + "Action": [ + "SQS:SendMessage" + ], + "Resource": "" +} +``` + +### Receiving Messages from Mendix + +Add the object below to the Access Policy of your AWS SQS queue if it is receiving messages from Mendix. + +``` +{ + "Sid": "__receiver_statement", + "Effect": "Allow", + "Principal": { + "AWS": [ + "arn:aws:iam::044806572671:role/mendix-event-broker-bridge" + ] + }, + "Action": [ + "SQS:ChangeMessageVisibility", + "SQS:DeleteMessage", + "SQS:ReceiveMessage" + ], + "Resource": "" +} +``` \ No newline at end of file diff --git a/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/blob-bridge.md b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/blob-bridge.md new file mode 100644 index 00000000000..bf7710e7f83 --- /dev/null +++ b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/blob-bridge.md @@ -0,0 +1,78 @@ +--- +title: "Configure a Bridge with Azure Blob Storage" +url: /appstore/services/event-broker-bridges/blob-bridge/ +linktitle: "Azure Blob Storage Bridge" +description: "How to configure and manage an Azure Blob Storage bridge using the Mendix Event Broker." +--- + +## Introduction + +An Azure Blob Bridge is a one-way bridge that receives events via Azure object storage. + +## Configure Service + +1. Configure the service by filling out the following: + + * **Event Broker Space** – the space where the bridge will operate + * **Name** – the name you want to call the bridge + * **Storage Account** – the storage account to access + * **Storage SAS Token** – the storage SAS Token + * **Container Path** – the path of the container where the messages will be stored + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/azure-blob-storage/ebb_azure_blob_configure.png" alt="" >}} + +2. Click **Next** to connect events to your bridge. + +## Connect Events + +To connect business events to Azure Blob Storage, follow these steps: + +1. Click **Add Business Events** to open a dialog box that displays all events managed by the Event Broker, including Mendix app-defined events and uploaded AsyncAPI events. Only events that can publish appear, as this bridge operates in one direction. +2. Select the events to integrate and specify the prefix path for event storage. + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/azure-blob-storage/ebb_azure_blob_connect_events.png" alt="" >}} + +3. Click **Next** to proceed to the confirmation screen. + +## Editing Bridges + +You can edit an Azure Blob Storage bridge to modify the configuration as your integration requirements evolve, without recreating it. For an Azure Blob Storage bridge, you can: + +* Add or remove Business Events +* Update Storage Account, Storage SAS Token, Container Path, or Prefix Path + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/edit-bridge/ebb_azure_blob_edit_mode.png" alt="" class="no-border" >}} + +{{% alert color="info" %}}You can edit Azure Blob Storage bridges only when the status is **Running**. {{% /alert %}} + +To edit a bridge: + +1. On the [Event Broker Manager](https://broker.mendix.com/) page, navigate to the **Event Broker Bridges** tab. +2. Click the bridge you want to modify. +3. Click **Edit** to enter editing mode. In editing mode, you can perform the following actions: + + * **Add Business Events**: + + 1. Click **Add Business Events** to open a dialog box that displays available events. + 2. Select the events you want to add and click **Select**. Added events display an **Added** badge and can be removed before applying changes. + + * **Remove Business Events**: + + 1. Navigate to the event you want to remove and click **Remove**. Removed events display a **Removed** badge, and their name and metadata appear grayed out. + 2. Re-add a removed event by clicking **Add** before applying changes. + + * **Update Service Configuration**: + + * Update the Storage Account, Storage SAS Token, Container Path, or Prefix Path as needed + +4. After you make your changes, you can: + * Click **Apply** to save and apply the changes. A confirmation message indicates whether the changes were successful. Changes to the event configuration take effect when applied. After applying changes, the bridge status changes to **Reconfiguring** and returns to **Running** when reconfiguration is complete. + * Click **Cancel** to exit editing mode without saving any changes. + +{{% alert color="info" %}} +The **Apply** button is only enabled when changes have been made to the bridge configuration. +{{% /alert %}} + +{{% alert color="warning" %}} +If an error occurs during editing, the bridge automatically rolls back to its previous running state to ensure continuity of service. +{{% /alert %}} diff --git a/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/http-bridge.md b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/http-bridge.md new file mode 100644 index 00000000000..bea6b4d58f2 --- /dev/null +++ b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/http-bridge.md @@ -0,0 +1,90 @@ +--- +title: "Configure a Bridge with HTTP" +url: /appstore/services/event-broker-bridges/http-bridge/ +linktitle: "HTTP Bridge" +description: "How to configure and manage an HTTP bridge using the Mendix Event Broker." +--- + +## Introduction + +An HTTP bridge is a one-way bridge that uses HTTP requests to send events from external systems to the Mendix Event Broker. + +## HTTP Bridge Headers + +HTTP bridges require specific headers for authentication. **Authorization** must be set as a Bearer token using the Personal Access Token (PAT) generated during bridge configuration; for example: `Authorization: Bearer ` + +For details on how to obtain your Bearer token, see the [Using the HTTP Bridge](#using-the-http-bridge) section below. + +### Optional Headers + +You can include additional HTTP headers in your request to provide event metadata, such as: + +* `ce_time` – sets the published time of the event; for example: `2025-06-13T15:36:52.148542+02:00` + +All custom HTTP headers are forwarded as Kafka headers by default. + +## Using the HTTP Bridge {#using-the-http-bridge} + +To run the HTTP bridge from your client, include a Bearer token in the request header. + +1. Open the HTTP bridge details using the **Options** ({{% icon name="three-dots-menu-horizontal" %}}) menu on the **Overview** page. +2. Add the **Bearer token**. + +## Configure Service {#configure-http-bridge} + +1. Configure the service by filling out the following: + + * **Event Broker Space** – the space where the bridge will operate + * **Name** – the name you want to call the bridge + * **AWS region** – the AWS region where your bridge operates + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/http/ebb_http_configure.png" alt="" width="400" >}} + +2. Click **Next** to connect events to your bridge. + +## Connect Events + +To connect business events to the HTTP bridge, follow these steps: + +1. Click **Add Business Events** to open a dialog box that displays all events managed by the Event Broker, including Mendix app-defined events and uploaded AsyncAPI events. Only events that can subscribe appear, as this bridge operates in one direction. +2. Select the events to integrate. After selecting events, the bridge automatically generates the URL for the HTTP connection. + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/http/ebb_http_connect_events.png" alt="" width="400" >}} + +3. Click **Next** to proceed to the confirmation screen. + +## Editing Bridges + +You can edit an HTTP bridge to modify the configuration as your integration requirements evolve, without recreating it. For an HTTP bridge, you can add or remove Business Events. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/edit-bridge/ebb_http_edit_mode.png" alt="" class="no-border" >}} + +{{% alert color="info" %}}You can edit HTTP bridges only when the status is **Running**. {{% /alert %}} + +To edit a bridge: + +1. On the [Event Broker Manager](https://broker.mendix.com/) page, navigate to the **Event Broker Bridges** tab. +2. Click the bridge you want to modify. +3. Click **Edit** to enter editing mode. In editing mode, you can perform the following actions: + + * **Add Business Events**: + + 1. Click **Add Business Events** to open a dialog box that displays available events. + 2. Select the events you want to add and click **Select**. Added events display an **Added** badge and can be removed before applying changes. + + * **Remove Business Events**: + + 1. Navigate to the event you want to remove and click **Remove**. Removed events display a **Removed** badge, and their name and metadata appear grayed out. + 2. Re-add a removed event by clicking **Add** before applying changes. + +4. After you make your changes, you can: + * Click **Apply** to save and apply the changes. A confirmation message indicates whether the changes were successful. Changes to the event configuration take effect when applied. After applying changes, the bridge status changes to **Reconfiguring** and returns to **Running** when reconfiguration is complete. + * Click **Cancel** to exit editing mode without saving any changes. + +{{% alert color="info" %}} +The **Apply** button is only enabled when changes have been made to the bridge configuration. +{{% /alert %}} + +{{% alert color="warning" %}} +If an error occurs during editing, the bridge automatically rolls back to its previous running state to ensure continuity of service. +{{% /alert %}} \ No newline at end of file diff --git a/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/iceberg-bridge.md b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/iceberg-bridge.md new file mode 100644 index 00000000000..399146b5881 --- /dev/null +++ b/content/en/docs/marketplace/platform-supported-content/services/event-broker/event-broker-bridges/iceberg-bridge.md @@ -0,0 +1,88 @@ +--- +title: "Configure a Bridge with Apache Iceberg" +url: /appstore/services/event-broker-bridges/iceberg-bridge/ +linktitle: "Apache Iceberg Bridge" +--- + +## Introduction + +An Apache Iceberg Bridge is a one-way bridge that delivers [Change Data Capture (CDC)](/refguide/change-data-capture/) events to Apache Iceberg tables stored in AWS S3 or Azure Blob Storage. + +## Configure Service + +Configure the service by filling out the following: + +* **Event Broker Space** – the space where the bridge operates +* **Name** – a name for the bridge +* **Choose a data lake** – the data lake that Iceberg uses to store your data + * **Azure Blob Storage** + * **Storage Account** – the storage account to access + * **Storage SAS Token** – the SAS token used to access the storage account + * **Container** – the container where the data is stored + * **AWS S3** + * **Bucket** – the bucket where the data is stored + * **AWS Region for Bucket** – the AWS region where the bucket is located + * **AWS Role (to Assume)** – the AWS role to assume for the required permissions + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/iceberg/ebb_iceberg_configure.png" alt="" width="400" >}} + +### Bridge Statuses + +Check the **Bridge Status** on the **Overview** page to verify that it is ready and operating as expected. The following list describes the possible bridge statuses. + +* **Halted** – The bridge has stopped because an internal component failed. Data is not being delivered. +* **Provisioning** – The bridge is being created or initialized and is not yet ready to deliver data. +* **Delivering** – The bridge is healthy, fully configured, and actively delivering data to the destination. +* **Misconfigured** – The bridge is running, but its data flow is not healthy or cannot be fully verified. Check the bridge configuration and data flow. +* **Reconfiguring** – The bridge is applying configuration changes. Data delivery may be temporarily interrupted until the new configuration is synchronized. +* **Awaiting Data** – The bridge is running and ready, but no source data is currently flowing. Data delivery will begin when data becomes available. + +## Connect Events + +Select the CDC events that you want to deliver from the Event Broker to Iceberg: + +1. Click **Add CDC Events** to open a dialog box displaying the available CDC events managed by the Event Broker. Only events that can be subscribed to are shown because the bridge delivers events in one direction, from the Event Broker to Iceberg. + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/iceberg/ebb_iceberg_connect_events.png" alt="" width="400" >}} + +2. Select one or more CDC events to integrate. The Iceberg connection configuration is automatically generated based on the selected events. + + {{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/iceberg/ebb_iceberg_choose_cdc_events.png" alt="" width="400" >}} + +3. Click **Next** to review and confirm the bridge configuration. + +## Editing Bridges + +You can edit an Apache Iceberg bridge bridge to modify the configuration as your integration requirements evolve, without needing to recreate it. For an Iceberg bridge, you can add or remove CDC events. + +{{< figure src="/attachments/appstore/platform-supported-content/services/event-broker/bridges/edit-bridge/ebb_iceberg_edit_mode.png" class="no-border" >}} + +{{% alert color="info" %}}You can edit Iceberg bridges only when the status is **Delivering**. {{% /alert %}} + +To edit a bridge: + +1. On the [Event Broker Manager](https://broker.mendix.com/) page, navigate to the **Event Broker Bridges** tab. +2. Click the bridge you want to modify. +3. Click **Edit** to enter editing mode. In editing mode, you can perform the following actions: + + * **Add CDC Events** (Iceberg): + + 1. Click **Add CDC Events** to open a dialog box that displays available CDC events. + 2. Select the CDC events you want to add and click **Select**. Added events display an **Added** badge and can be removed before applying changes. + + * **Remove CDC Events** (Iceberg): + + 1. Navigate to the CDC event you want to remove and click **Remove**. Removed events display a **Removed** badge, and their name and metadata appear grayed out. + 2. To re-add a removed CDC event, click **Add** before applying changes. + +4. Once you have made your changes, you can: + * Click **Apply** to save and apply the changes. A confirmation message will indicate if the changes were successful. Changes to the event configuration take effect when applied. After applying changes, the bridge status will change to **Reconfiguring** and will return to **Running** once the reconfiguration is complete. + * Click **Cancel** to exit editing mode without saving any changes. + +{{% alert color="info" %}} +The **Apply** button is only enabled when changes have been made to the bridge configuration. +{{% /alert %}} + +{{% alert color="warning" %}} +If an error occurs during the editing process, the bridge will automatically roll back to its previous running state to ensure continuity of service. +{{% /alert %}} diff --git a/content/en/docs/refguide/modeling/integration/change-data-capture/_index.md b/content/en/docs/refguide/modeling/integration/change-data-capture/_index.md index dcad465b41d..d20f949056b 100644 --- a/content/en/docs/refguide/modeling/integration/change-data-capture/_index.md +++ b/content/en/docs/refguide/modeling/integration/change-data-capture/_index.md @@ -21,7 +21,7 @@ Read events are triggered as snapshots during startup or when a stream changes i The broker that receives these events is either the [Mendix Event Broker](/appstore/services/event-broker/) or a Bring Your Own Kafka (BYOK) cluster. For BYOK configuration details, see [Mendix Event Broker](/appstore/services/event-broker/). -To move the streamed data to a destination (such as Azure Blob Storage or AWS S3), you configure an [Event Broker Bridge](/appstore/services/event-broker/#manage-mx-broker-bridge) separately in the Event Broker Manager after deployment. +To move the streamed data to a destination (such as Azure Blob Storage or AWS S3), you configure an [Event Broker Bridge](/appstore/services/event-broker-bridges/) separately in the Event Broker Manager after deployment. ## Prerequisites @@ -31,7 +31,7 @@ Change Data Capture is not available for Free Apps. A licensed Mendix Cloud envi * A licensed Mendix Cloud environment * A [Mendix Event Broker](/appstore/services/event-broker/) license, or a BYOK Kafka cluster configured as described in [Mendix Event Broker](/appstore/services/event-broker/) -* An [Event Broker Bridge](/appstore/services/event-broker/#manage-mx-broker-bridge) configured in the Event Broker Manager if you want to route CDC events to external storage +* An [Event Broker Bridge](/appstore/services/event-broker-bridges/) configured in the Event Broker Manager if you want to route CDC events to external storage ## Setting Up Change Data Capture @@ -40,7 +40,7 @@ Set up a CDC service in Studio Pro by following the steps below: 1. In Studio Pro, right-click a module in the App Explorer and choose **Add other** > **Change data capture service**. 2. Select the entities to track and set an exposed name for each. For more information on configuring entities, see the [Entities to Track](/refguide/published-cdc-services/#entities) section of *Published CDC Services*. 3. Deploy the app. The Runtime creates Kafka topics for each tracked entity automatically. -4. In the [Event Broker Manager](https://broker.mendix.com/), configure an [Event Broker Bridge](/appstore/services/event-broker/#manage-mx-broker-bridge) to route CDC events to your destination. +4. In the [Event Broker Manager](https://broker.mendix.com/), configure an [Event Broker Bridge](/appstore/services/event-broker-bridges/) to route CDC events to your destination. ## Runtime Configuration {#runtime-configuration} @@ -102,4 +102,4 @@ For details on setting up a BYOK cluster with the Mendix Event Broker, see [Mend * [Published CDC Services](/refguide/published-cdc-services/) * [Mendix Event Broker](/appstore/services/event-broker/) -* [Event Broker Bridges](/appstore/services/event-broker/#manage-mx-broker-bridge) +* [Event Broker Bridges](/appstore/services/event-broker-bridges/) diff --git a/content/en/docs/refguide/modeling/integration/change-data-capture/published-cdc-services.md b/content/en/docs/refguide/modeling/integration/change-data-capture/published-cdc-services.md index 629ca63c05f..8e794c8c21c 100644 --- a/content/en/docs/refguide/modeling/integration/change-data-capture/published-cdc-services.md +++ b/content/en/docs/refguide/modeling/integration/change-data-capture/published-cdc-services.md @@ -99,4 +99,4 @@ The following describe how the CDC service behaves at runtime: * [Change Data Capture](/refguide/change-data-capture/) * [Mendix Event Broker](/appstore/services/event-broker/) -* [Event Broker Bridges](/appstore/services/event-broker/#manage-mx-broker-bridge) +* [Event Broker Bridges](/appstore/services/event-broker-bridges/)