Существуют различные виды модулей. Некоторые модули хранят мета-данные, некоторые оборачивают системные и сторонние библиотеки, создавая слой отделения API платформы, некоторые реализуют бизнес-логику.
Модуль протокола. Модуль протокола содержит спецификацию языка обмена для группы модулей логики. Модуль протокола является динамической библиотекой, экспортирующей словарь типов (сообщений), или кросс-платформенным пакетом мета-данных (с этим словарем типов).
Модуль логики. Модуль логики реализует поведение, описываемое конечным автоматом. Такие модули являются главными строительными единицами. Модуль логики является динамической библиотекой, экспортирующей один главный класс. Этот экспортируемый класс может иметь несколько экземпляров. Главный класс реализует функции‑обработчики для переходов в конечном автомате модуля. Переходы в конечном автомате модуля срабатывают по событиям. Событием считается получение модулем сообщения.
Модуль-библитека. Модуль-библиотека оборачивает функции API операционной системы или сторонние библиотеки и предоставляет доступ к ним посредством протокола. Обычно модуль-библиотека имеет простой автомат в форме «ромашки», так как реализует атомарные независимые действия. Если для решения задачи требуется реализовать более сложное поведение, то над модулем библиотекой строится модуль логики.
Схема. Конечный продукт определяется сочетанием модулей, входящих в него, и настройкой их взаимного поведения. Это задаётся схемой.
Схема определяет набор модулей для загрузки и их ролевые взаимосвязи в конечном продукте. Схема может рассматриваться как типизированная композитная сущность. Т.е. можно говорить об определении схемы и о ее экземплярах, созданных во время исполнения. Схема может содержать в качестве элементов не только модули, но и целые подсхемы. При загрузке основной схемы подсхемы создаются и загружаются автоматически.
Схема может быть задана статически или может формироваться динамически и даже эволюционировать (регенерироваться) в процессе работы приложения.
Схемы описываются декларативно на языке M.