Elgg uses MySQL 5.5 or higher for data persistence, and maps database values into Entities (a
representation of an atomic unit of information) and Extenders (additional information and
descriptions about Entities). Elgg supports additional information such as relationships between
Entities, activity streams, and various types of settings.

Plugins change the behavior or appearance of Elgg by overriding views, or by handling events and plugin hooks.
All changes to an Elgg site should be implemented through plugins to ensure upgrading core is easy.

Events and Plugin Hooks are used in Elgg Plugins to interact with the Elgg engine under certain
circumstances. Events and hooks are triggered at strategic times throughout Elgg’s boot and execution
process, and allows plugins to modify or cancel the default behavior.

Views are the primary presentation layer for Elgg. Views can be overridden or extended by Plugins.
Views are categories into a Viewtype, which hints at what sort of output should be expected by the
view.