Pour Ralf Westphal, les modèles d’architectures communs comme l'architecture en couches, l'architecture hexagonale et l'architecture Clean semblent tous très similaires lorsqu'ils effectuent les 2 actions suivantes : la définition des domaines de responsabilité et la mise des dépendances fonctionnelles dans l'ordre. Pour lui, ces modèles donnent une idée très grossière de la structure d’une application, décrivant essentiellement les logiciels comme une hiérarchie profonde de dépendances fonctionnelles ou comportementales.
À la recherche d’une autre manière de décrire les architectures, Westphal a défini un style architectural, IODA architecture, construit autour de trois responsabilités formelles, allant d'orthogonales à comportementales :
Opération : élément de la logique ou du changement comportemental sur les données, mais sans connaissance de toute autre opération et non autorisé à y faire appel.
Données : structure de données, incluant éventuellement des services travaillant sur les données pour assurer la cohérence, mais sans addition de toute autre forme de logique.
Intégration : fait appel aux opérations et aux autres intégrations afin de mettre le tout en un ensemble créant ainsi un comportement, mais ne contiennent pas de logique.
APIs et frameworks constituent la quatrième partie grâce à travers laquelle les opérations interagissent avec l'environnement.
Dans ce modèle, les opérations dépendent uniquement sur des données, alors que les intégrations dépendent des opérations et d'autres intégrations. Par la présente, Westphal prétend avoir supprimé toutes les dépendances fonctionnelles, ce qui reste est simplement ce qu'il appelle des dépendances formelles ou vides. Il affirme également que puisque les opérations ne peuvent pas faire appel à d'autres opérations, extraire la logique de nouvelles méthodes opérationnelles implique la création d'intégrations afin de garder les choses ensemble et ainsi la mise en application de petites méthodes, moins de 10-20 lignes de code, dans une application.
Un aspect important que mentionne Westphal est qu’une structure IODA peut apparaître sur plusieurs niveaux. Ce qui est une opération pour un niveau d'abstraction peut-être en soi une structure complète IODA lorsque vous zoomez.
Westphal a créé un exemple de conception et de mise en œuvre d'une petite application utilisant IODA, incluant une description des idées de base derrière la conception avec les sources disponibles en téléchargement.