All the host applications in this repository share one modular, event-driven architecture, the same one used by the Asset Tracker Template. The modules interact through messages that are processed as events by the modules' state machines.
The architecture is implemented using Zephyr bus (zbus) for inter-module communication and the State Machine Framework (SMF) for managing module behavior.
This document describes the pattern that every application follows, with a focus on the zbus message passing and the modules' state machines. The code examples are taken from the PPP Host Application, and the nRF93M1 AT and nRF91 AT Host Applications implement the same pattern. Which modules each application has is listed in Modules per application.