There are several concepts that are present in almost all business software applications. Understanding these concepts makes it much easier to design business applications, to ensure that they do not violate the domain rules, and to adapt the applications to changing requirements without the need to change the overall architecture. This is known as REA (Resources, Events, Agents). What are the most fundamental REA concepts?