Application Domains

An application domain represents a namespace where applications, events, and other EDA objects reside. Application domains enable you to organize your event-driven architecture (EDA) into related, manageable pieces for different development teams, lines of business, microservice applications, or other logical grouping within your organization and allow you to control who has access to work in each application domain and manage the objects within it.

Within an application domain, you create a suite of objects that represent the elements in a segment of your EDA. Every object in Event Portal belongs to one application domain to maintain a clear ownership. You can share objects with other application domains, which lets you create common assets that you can make available across your organization and use to build relationships between different parts of your EDA.

Application domains also define the topic domains for the events created within the application domain. Topic domains define the top levels of your topic hierarchy. You can use topic domains as the starting point for the topic addresses you set for events within the application domain. For more information about topic domains and addresses, see Topic Addresses

When you open Designer, you see the list of application domains for your organization.

This section includes the following tasks:

You can also create custom attributes for application domains. For more information, see Using Custom Attributes

To help you get started, Solace provides sample application domains that you can download from GitHub and import into Designer. For more information, see Importing Application Domains.

Viewing the List of Application Domains

When you open Designer, you see the list of application domains for your organization.

To return to the list of application domains from any page in Designer, perform one of the following actions:

  • Click Designer in the breadcrumb at the top of the page.

  • On the navigation bar, select Designer .

Providing User Access to an Application Domain

Administrators, Event Portal Managers, and Event Portal Users with Manager access to an application domain can give users with the Event Portal User role access to the application domain. Users can be given Viewer, Editor, or Manager access to individual application domains. For more information about roles and access, see Managing User Access to Event Portal.

To give Event Portal Users access to an application domain, perform these steps:

  1. When creating or viewing an application domain, click More Actions and then select Set User Access.
  2. Perform one of the following actions:
    • If your organization doesn't have user groups enabled, click Add User.
    • If your organization has user groups enabled, click Add and select either Add User Group or Add User.
    Screenshot showing the settings described in the surrounding steps.
  3. In the Name list, type or select the name of the user or user group you want to give access to. Only users and user groups with the Event Portal User role whom you have not already set an access level for appear in the list.
  4. Select the Access Level that you want to give to the user or user group.
  5. Click Save.
  6. Repeat steps 1-6 to give access to another user or user group. You can remove access, by clicking Remove in the row for the user or user group.

Creating an Application Domain

When you create an application domain, you specify the properties of the application domain, including the topic domains and requirements for topic addresses for events that reside in the domain. For more information about topic domains and addresses, see Topic Addresses. You can also specify who has access to the application domain. You must be an Administrator or Event Portal Managerto create an application domain.

To create an application domain, perform these steps:

  1. In Designer, above the list of application domains, click Create Application Domain.

    Screenshot showing the settings described in the surrounding steps.

  2. Enter a Name and Description for the application domain. The Description field supports Markdown. Click toggle preview to preview the rendered text.
  3. If you want each event in the application domain to have a unique topic address, select All topic addresses within this application domain must be unique.
  4. To specify a topic domain, click Add Topic Domain and perform these steps:
    1. Select the Broker Type for the topic domain.
    2. Enter the topic domain. Topic domains for Solace event brokers must meet the following conditions; For more information, see Topic Addresses.
      • Don't use the *, >, or ! characters in a topic address.
      • To use an enumeration variable, type an opening brace {, click Configure Variable, and select an enumeration and version. Enumerations are supported only in Solace topic domains.
  5. If you want every event topic address to start with one of the application domain's topic domains, select All topic addresses within this application domain must use a topic domain. This option is available only after you have specified at least one topic domain.
  6. If you want to allow updates to the descriptions of object versions that are not in Draft state, select Allow object descriptions to be editable in all lifecycle states.
  7. (Optional) Add a value for any custom attributes that have been set up in your organization.
  8. (Optional) Click User Access to give Viewer, Editor, or Manager level access to users with the Event Portal User role. For more information, see Application Domains.
  9. Click Save.

Updating an Application Domain

After you create an application domain you can add Applications, Event API Products, Event APIs,Events, Schemas, and Enumerations to the application domain. You can also update the name, description, custom attributes, and topic domain settings.

If All topic addresses within this application domain must use a topic domain is selected and you change a topic domain, any events that use the topic domain do not update automatically. The next time you edit an event you'll have to update the topic address in the event before you can save it.

To update an application domain, perform these steps:

  1. On the Application Domains page, select the application domain that you want to update.
  2. Click More Actions for the application domain and select Edit.
  3. Update the settings as necessary.
  4. Click Save.

Moving Objects Between Application Domains

You can move applications, events, schemas, and enumerations from one application domain to another if you have at least Editor access to both the source and destination application domains. Moving objects is useful to reorganize your resources or to make corrections if you import objects into the wrong application domain.

When you move objects that reference or are referenced by other objects in the same application domain, any affected objects that are not shared will be changed to shared to allow all references to be maintained across application domains.

If you move an object with a value set for a custom attribute, the value is maintained and the custom attribute is added to the destination application domain if it doesn't already exist. For more information, see Using Custom Attributes

To move objects to another application domain, perform these steps:

  1. On the Application Domains page, select the application domain that contains the objects you want to move.
  2. Select the Applications, Events, Schemas, or Enumerations tab.
  3. Select the check boxes next to the objects that you want to move.
  4. Click the Actions drop-down list and select Move Object-type.
  5. Select the Destination Application Domain.
  6. (Optional) In the message that appears when the move is complete, click Go to Application Domain to open the destination application domain.

Deleting an Application Domain

You can delete application domains from Event Portal if no objects are in a modeled event mesh, and if no objects are referenced by objects in other application domains. You must be an Administrator or Event Portal Managerto delete an application domain.

To delete an application domain, perform one of these steps:

  • On the Application Domains page, click More Actions for the application domain and select Delete.
  • In the graph or list view for the application domain, click More Actions in the top-right corner and select Delete.

If one or more object associations blocks you from deleting an application domain, an error message provides more information.

Protecting Application Domains From Deletion

Administrators and Event Portal Managers can enable deletion protection for an application domain to prevent it from being deleted. If deletion protection in enabled for an application domain, the Delete option is disabled.

To enable deletion protection for an application domain, perform these steps:

  1. On the Application Domains page, click More Actions for the application domain and select Edit.
  2. In the top-right corner, click More Actions and select Enable Deletion Protection.

Exporting and Importing Application Domains

You can export application domains from your organization's account and import application domains into your account. Exported application domains includes all objects in the application domain. The exported file is in JSON format and can be a maximum of 10 MB. Custom attributes that apply to all application domains are not included in the export file.

You must have be an Administrator or Event Portal Manager to export or import application domains.

Exporting Application Domains

When you export an application domain, if any objects reference shared objects from other application domains, the application domains that contain the referenced objects are also included in the export file. You can select a single application domain or multiple application domains to export.

To export application domains, perform these steps:

  1. On the Application Domains page, select the application domains that you want to export.

    Screenshot showing the settings described in the surrounding steps.

  2. Perform one of the following actions:
    • In the Actions drop-down list at the top of the list of application domains, select Export.
    • If you selected only one application domain, click More Actions for the application domain and select Export Application Domain.
  3. (Optional) Edit the Export Filename.
  4. Review the details of the application domains to be included in the export.
  5. Click Export.

Importing Application Domains

When you import application domains, the application domains and all of the objects they contain are added to Event Portal. The import file must meet the following requirements:

  • Each application domain in the file must have a unique name. If an application domain with the same name already exists in your account, the import fails. You can rename an application domain in the JSON file and try the import again.
  • If the application domain includes Kafka topic domains or topic addresses that use a Kafka delimeter, the delimiter must match the delimiter specified in the account you are importing to.
  • The import file must be smaller than 10 MB.

You can download sample application domains from GitHub and import them into Designer. To see and learn about the samples, visit https://github.com/SolaceLabs/event-portal-samples.

To import an application domain, perform these steps:

  1. On the Application Domains page, click More Actions .
  2. Select Import Application Domains.
  3. Select the JSON file to import.
  4. Click Open.

The import may take several minutes.