How is your experience with the OutSystems Community?
38
Views
2
Comments
Application Architecture

Hi everyone,

I have a question regarding how DiscoveryApp or AI Mentor automatically identifies and classifies applications into Foundation, Core, and End User layers.

How does the platform determine which layer an application belongs to?

  • Is it based on the application's name or naming conventions?

  • Does it analyze the dependencies/references between applications?

  • Are there any other factors (such as exposed elements, module types, or architecture metadata) that are considered?

Or is the classification based purely on application dependencies?

I'd appreciate it if someone could explain the logic behind how Discovery/App Mentor organizes applications into these architecture layers.

Thanks!

2026-06-05 12-38-17
Eduardo Jauch

Hello Aslam,

Application classification is made based on the top most layer with a module in it.

So, if you have an application with an End User module, it will be an End User application. If it does not have an End User module, but has a Core module, it will be a Core app. And if does not have any of the previous, containing only Foundation modules, it will be a Foundation app.

The modules themselves are classified based on a suffix or prefix that you add to the module name. So, CS, BL, Etc for Core layers, IS for foundation, etc. Discovery comes with a configured list of those suffixes/prefixes that you can change. 

I never look into the code, but in the absence of a valid suffix/prefix in the name, I think it will be taken into account some elements, like if there are screens, it will be classified as an End User module. I think it works like that because End User modules usually do not contain any suffix/prefix in the name, but discovery classifies them correctly. 

Other elements and maybe dependencies may be used for other types of modules, but I am not sure.

It's not uncommon for them (Discovery at least) to wrongly classify a module that does not have a valid suffix/prefix, creating false positives (architecture violation), but you can also change the layer of a module (and app) manually.

But you can install and open Discovery and take a look inside, to see the logic by yourself (I may do that in the near future). I think AI mentor uses the same logic.

Cheers!

EDIT:
It seems AI Mentor can use AI to do the classification: https://success.outsystems.com/documentation/11/monitoring_and_troubleshooting_apps/manage_technical_debt/how_to_enable_or_disable_auto_classification/

UserImage.jpg
Francisco Franco

Discovery classifies modules mainly through configured naming rules/prefixes.

AI Mentor Studio uses automatic AI classification, but OutSystems does not publish the exact criteria or weighting.

So, classification is not based only on dependencies, and incorrect results can be manually overridden.

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.