Domains offer Cortex users a way to group any kinds of entities in the platform by product area, functionality, systems, business units, or any other logical grouping. With this feature, you can unite services, resources, and other entities into a single, hierarchical domain. Domains can include both parents and children, and children can be services, resources, or other domains.
You can find Domains under the Catalogs tab in the navigation bar — this feature is fundamentally the same as the service and resource catalogs. When you first open the Domains Catalog, you’ll see that it is organized into All and Mine, just like the other catalogs.
Creating a domain hierarchy
To set up a Domain hierarchy, select Create domain. Just like with other entities in Cortex, you’ll first name the Domain, which will create an Identifier — this is the x-cortex-tag that is used for creating and updating API access, and integrating with GitOps. You also have the opportunity to include an optional description.
Let’s say, for example, a Cortex engineer wants to set up a domain for business units. First, we’d create our Scorecards domain. The name and identifier would both be Scorecards, and we’d define its Groups as type:business-unit. Then, we’d Create domain.
Then we’d repeat the process for our next domain. Within Scorecards, Cortex uses an evaluator system. Our next domain name and identifier would be Scorecard evaluator and scorecard-evaluator, while the Groups would be defined as type:system. Select Create domain to move on.
We’d repeat the process one more time for the background queue that operates behind the evaluator. The name and identifier would be Background queue and background-queue. In this case, the Groups would also be defined as type:system.
You’ll see all three of these domains populate under the All tab. At this stage, all of the domains are top-level and have not been connected. To create the hierarchy, start with the top-most entity, adding children to parents.
Our Cortex engineer would open the Scorecard domain, navigate to Configure Domain, and select Children from the left-hand menu bar. From the Domains drop-down menu, we’d then select Evaluator and Publish Changes.
From the Scorecard Domain details page, we’d then navigate to Child Domains from the left-hand menu bar to confirm that the domains are linked. We’d then repeat the process to add the Background queue to the Evaluator. Once the Background queue is added as a child to Evaluator, we’ll be able to find both Evaluator and Background queue under the Scorecard Domain’s children.
With this feature, you can add services and resources as children at any level in the tree. Our Cortex engineer would next add some relevant entities under the Background queue, and would be able to find these under Services & Resources from any parent domain’s details page. Services and resources can be added to multiple domains at any level, so you can represent your microservices architecture faithfully.