I would like to know in a logical and robust and clear way,
How does the organization behave in software that it will have:
-Logging (any action performed on the system must be logged) ex: "User X entered a new product in the system, in Data Y", "User Z changed the product in date Y".
- Dynamic access control, each registered user can belong to a "group" that has specific permissions of the system. The system administrator can create permission groups as well as give specific permissions for each type of user as well.
Ex: add order, remove order.
My question is not how to do or implement it all.
My question is, if I'm using n-layer arquitecture, something like DDD, or something like that, the abstractions, interfaces, and concrete classes would be organized in what layers, everything nice and readable ubiquitous language.