← Back to list

The power of the Discovery tool in OutSystems 11

Discovery is a visual tool that allows us to analyze and understand the state of the architecture in an OutSystems factory.

Ricardo Pereira in ITNEXT · 2024-05-10 08:31 · 78 claps · 8.0 min read
#outsystems #outsystems-development #outsystems-architecture #outsystems-discovery #outsystems-mvp
Open on Medium ↗
Wiki topics: 📋 · Product Management 🏛️ · Architecture

The power of the Discovery tool in OutSystems 11

Discovery is a visual tool that allows us to analyze and understand the state of the architecture in an OutSystems factory.

Through Discovery we are able to verify the extent to which the architecture validation rules and application composition rules are followed, both from a modeling, application and domain point of view.

The idea that led to the development of this tool is to reduce the time needed to inspect the architecture and do so more reliably.

In addition to all the features available on the application’s frontend, Discovery also provides an API that allows us to automate certain tasks and incorporate them into the platform maintenance processes carried out by other tools.

Since Discovery is a tool that goes through the normal process of installing OutSystems applications (as it is an application developed in OutSystems), it means that we can install it in any environment (starting with the leftmost environment, be it DEV or Pre-DEV). This feature allows you to check the status of the architecture in different environments, and it is always advisable to install and use the respective tool in the development environment (DEV), thus ensuring that the analysis, corrections and adjustments to the architecture of the solutions/factory are executed as quickly and early as possible (fail fast and fix fast).

We will analyze, step by step, what Discovery has to offer us. To begin, we must access Discovery through the URL ‘{environment_base_address}/Discovery’. The tool’s home page will be displayed:

Fig 1 — Discovery tool home page

Fig 1 — Discovery tool home page

The Discovery home page presents information focused on the current day and regarding the general state of the factory’s architecture.

At the top we have the menu (available with the same access anywhere in the tool) that gives us access to the different views and functionalities:

Fig 2 — Menu available in Discovery with access to all features and views in the tool

Fig 2 — Menu available in Discovery with access to all features and views in the tool

In the central content you can see 3 sections with totalizers: the domain totalizer, the application totalizer and the module totalizer (don’t forget that these are the total counters at the current date):

Fig 3 — Section of totalizers of domains, applications and modules existing in the OutSystems factory at the current date

Fig 3 — Section of totalizers of domains, applications and modules existing in the OutSystems factory at the current date

Below the totalizers we find the findings section. Here you can change the view of the data between table mode and graphical mode, in addition to being able to select, in each of the available alternatives (domains, applications or modules) whether you want to have the information as a summary (overview) or as a details and filter by the respective items to inspect:

Fig 4 — Findings section with respective filtering options

Fig 4 — Findings section with respective filtering options

Analyzing the options available in the menu, starting with the ‘Modules’ entry, access to:

  • Module Canvas — Web screen that provides a canvas with the distribution of existing modules in the respective OutSystems factory distributed across their respective layers;

Fig 5 — View of the web screen accessed through the ‘Modules — Module Canvas’ entry

Fig 5 — View of the web screen accessed through the ‘Modules — Module Canvas’ entry

  • Move to another App — Web screen where the distribution of all modules in the respective OutSystems factory is made available with visibility of the application to which they belong and with the functionality of moving the modules to another application by selecting the target application in the existing dropdown in the representation of each of the modules;

Fig 6 — View of the web screen accessed through the ‘Modules — Move to another App’ entry

Fig 6 — View of the web screen accessed through the ‘Modules — Move to another App’ entry

  • Assign Layer — Web screen where we are provided with the distribution of all modules in the respective OutSystems factory with visibility of the layer to which they belong and with the functionality of moving the modules to another layer by selecting the destination layer in the dropdown in the representation of each of the modules;

Fig 7 — View of the web screen accessed through the ‘Modules — Assign Layer’ entry

Fig 7 — View of the web screen accessed through the ‘Modules — Assign Layer’ entry

  • eSpace cycles — Web screen that provides information related to cyclical references (violations) between modules at the current date;

Fig 8 — View of the web screen accessed through the ‘Modules — eSpace cycles’ entry

Fig 8 — View of the web screen accessed through the ‘Modules — eSpace cycles’ entry

NOTE: eSpace was the nomenclature used, in the past, in OutSystems technology for what is now called a module. Currently there are still residual references to this old term, and you can even find it in System entities.

Fig 9 — View of the accesses available in the ‘Modules’ menu entry

Fig 9 — View of the accesses available in the ‘Modules’ menu entry

Going to the next menu entry, ‘Applications’, access to:

  • Application Canvas — Web screen that provides a canvas with the distribution of existing applications in the respective OutSystems factory distributed across their respective layers;

Fig 10 — View of the web screen accessed through the ‘Applications — Application Canvas’ entry

Fig 10 — View of the web screen accessed through the ‘Applications — Application Canvas’ entry

  • Assign Domain — Web screen where we are able to distribute all applications in the respective OutSystems factory with visibility of the domain to which they belong and with the functionality to move applications to another domain by selecting the destination domain in the dropdown in the representation of each of the applications;

Fig 11 — View of the web screen accessed through the ‘Applications — Assign Domain’ entry

Fig 11 — View of the web screen accessed through the ‘Applications — Assign Domain’ entry

  • Application dependencies — Web screen where a matrix of application dependencies (references) is available, with information about direct and indirect references;

Fig 12 — View of the web screen accessed through the ‘Applications — Application dependencies’ entry

Fig 12 — View of the web screen accessed through the ‘Applications — Application dependencies’ entry

Fig 13 — View of the accesses available in the ‘Applications’ menu entry

Fig 13 — View of the accesses available in the ‘Applications’ menu entry

Next, we have the ‘Domains’ entry in the menu, which provides direct access to a web screen where a map of the existing domains in the respective OutSystems factory is available, as well as the number of applications in each of these domains, filters for refined search, and the functionalities for revalidating domains and obtaining a report on crossing borders between domains. These last two features are available via the respective buttons in the top right corner of the content section of the web screen:

Fig 14 — View of the web screen accessed through the ‘Domains’ entry

Fig 14 — View of the web screen accessed through the ‘Domains’ entry

After the ‘Domains’ menu entry, there is the ‘Configurations’ entry, where access to:

  • General Configurations — Web screen where we carry out Discovery’s basic configurations. The following parameters can be configured:
  • if the use of domains is intended (you can opt for a non-domain-oriented architecture);
  • how many modules, at most, can be displayed on the canvas of the screens on which it is displayed;
  • definition of emails for sending reports;
  • definition of the type of emails to send by type of finding;
  • automatic snapshot creation scheduling;
  • if we want module and application layers to be rewritten whenever we create a snapshot or whenever we use the auto classify functionality (where available);
  • corresponding OutSystems factory LifeTime URL configuration (allows import of LifeTime teams to define domains automatically;
  • provision of the unique usage key for the Discovery API;

Fig 15 — View of the web screen accessed through the ‘Configurations — General Configurations’ entry

Fig 15 — View of the web screen accessed through the ‘Configurations — General Configurations’ entry

  • Modules Layers — Web screen that provides the configuration of layers and respective sub-layers existing in the OutSystems factory. You can parameterize existing content, create sub-layers and even reorder them according to your architectural model (the fact that exists a pre-existing convention does not invalidate the creation of customized architectural models adapted to the reality of each OutSystems software factory). Furthermore, it is possible to import and export layers to and from Excel using the links available for this purpose in the top right corner of the content section of the web screen;

Fig 16 — View of the web screen accessed through the ‘Configurations — Modules Layers’ entry

Fig 16 — View of the web screen accessed through the ‘Configurations — Modules Layers’ entry

  • Manage Domains — Web screen that allows the configuration of existing domains in the OutSystems software factory. This web screen also provides the functionalities for creating a domain manually and importing domains via LifeTime through the links available for this purpose in the top right corner of the content section of the web screen;

Fig 17 — View of the web screen accessed through the ‘Configurations — Manage Domains’ entry

Fig 17 — View of the web screen accessed through the ‘Configurations — Manage Domains’ entry

Fig 18 — View of the accesses available in the ‘Configurations’ menu entry

Fig 18 — View of the accesses available in the ‘Configurations’ menu entry

The last menu entry is the ‘Snapshots’ entry, which provides direct access to a web screen where a table is available with the last snapshots taken (manually or automatically), with the possibility of downloading each one of them or eliminate them. Furthermore, on the right side of the table there is a button that allows us to take a new snapshot on the current date;

Fig 19 — View of the web screen accessed through the ‘Snapshots’ entry

Fig 19 — View of the web screen accessed through the ‘Snapshots’ entry

In order to understand all the characteristics of a module and/or an application, below is a brief explanation of each item in their representation:

Fig 20 — Detail of the representation of an application in Discovery

Fig 20 — Detail of the representation of an application in Discovery

The representation is filled with the color of the layer to which the application corresponds.

The image caption defines the purpose of each identified item:

  1. Name of the domain where the application is located. If the application does not belong to any domain, this value does not appear;
  2. Application name;
  3. Consumers of the respective application. To see the details of consumers, click on the identified item;
  4. Producers of the respective application. To see the details of the producers, click on the identified item;
  5. Zone representing violations of Architecture Canvas validation rules in applications. To see the details of the violations present, click on the identified item;
  6. Selected or unselected to be visible in case of view for selected only.

The case of module representation is not very different:

Fig 21 — Detail of the representation of a module in Discovery

Fig 21 — Detail of the representation of a module in Discovery

As in the representation of an application, the representation of a module is filled with the color of the layer to which the module corresponds.

The image caption defines the purpose of each identified item:

  1. Name of the application where the module is contained;
  2. Module name;
  3. Number of Webscreens existing in the module;
  4. Consumers of the respective module. To see the details of consumers, click on the identified item;
  5. Producers of the respective module. To see the details of the producers, click on the identified item;
  6. Number of Blocks existing in the module;
  7. Number of Server Actions existing in the module;
  8. Number of Service Actions existing in the module;
  9. Zone representing violations of Architecture Canvas validation rules in modules. To see the details of the violations present, click on the identified item;
  10. Number of Entities existing in the module;
  11. Selected or unselected to be visible in case of view for selected only.

These representations are widely used throughout Discovery, with only small variants already explained previously appearing in each of the sections in which they occur (such as the dropdowns for application and domain selection).

And basically this is a Discovery map. After some time exploring the application it becomes quite obvious that Discovery is one of our best friends when it comes to the OutSystems 11 platform. This article is based on my book written in Portuguese about software architecture in OutSystems 11. It can be obtained as a physical version or eBook through the following links:

[embed]Arquitetura de software em OutSystems 11 A ideia de escrever um livro sobre arquitetura em OutSystems, provem da experiência obtida em projetos ao longo da…clubedeautores.pt

[embed]Arquitetura De Software Em Outsystems 11 (Portuguese Edition) A ideia de escrever um livro sobre arquitetura em OutSystems, provem da experiência obtida em projetos ao longo da…www.amazon.com

[embed]Arquitetura de software em OutSystems 11 A ideia de escrever um livro sobre arquitetura em OutSystems, provem da experiência obtida em projetos ao longo da…www.amazon.com.br

As always, I hope this article contributes to someone’s journey on the OutSystems platform!


메타데이터
post_id
1d1486f9cf83
slug
the-power-of-the-discovery-tool-in-outsystems-11-1d1486f9cf83
url
https://itnext.io/the-power-of-the-discovery-tool-in-outsystems-11-1d1486f9cf83
canonical_url
https://itnext.io/the-power-of-the-discovery-tool-in-outsystems-11-1d1486f9cf83
author_url
https://medium.com/@ricardomlpereira
status
ok
fetched_at
2026-07-28 04:21:46