Denys Poltorak
1 min readSep 18, 2024

--

IMO MVC is a special kind of Hexagonal Architecture - they share both the forces they address and the means they use. To quote myself:

According to [POSA1], MVC separates a model (logic) from a user interface in order to satisfy the following forces:

* Support for multiple views of the same model, while Hexagonal Architecture allows for running the same business logic (model) in different setups (sets of adapters).

* The implementation of real-time change propagation to views, while Hexagonal Architecture makes the properties (including the responsiveness) of the model and the adapters independent; thus, a slow adapter or model will not block other components.

* The option of allowing the UI to be changed without touching the main business logic, the same freedom that holds for the adapters in Hexagonal Architecture.

* The ease of porting the UI to new platforms, which is similar to the protection from vendor lock-in in Hexagonal Architecture.

Thus, having several subdomain modules, each built as a dedicated MVC (resembles Microfrontends?) is similar to a system of services where each service implements Hexagonal Architecture (or at least an Anticorruption Layer). There is nothing new under the moon.

--

--

Denys Poltorak
Denys Poltorak

Written by Denys Poltorak

yet another unemployed experienced embedded / low-level C++ technical lead from Ukraine

No responses yet