Over 25 years, Intetics has implemented hundreds of projects using a wide variety of architecture approaches. As a result, we have fundamental knowledge about all modern and old approaches to software architecture. Nowadays Intetics bases most of its architectural decisions on 1 of 3 popular patterns:
Layered One of the most well-known software architecture patterns: Code is split into “layers”, where each layer has a certain responsibility and provides a service to a higher layer. There isn’t a predefined number of layers, but ones you see most often include User Interface, Presentation, Application, Domain model, Persistence, Data, all built on a common Infrastructure.
MICROKERNEL The microkernel pattern, or plug-in pattern, is useful when your application has a core set of responsibilities and a collection of interchangeable parts on the side. The microkernel will provide the entry point and the general flow of the application, without really knowing what the different plug-ins are doing
MICROSERVICES A set of microservices actually refers to multiple separate applications working together. Each microservice has its own distinct responsibility and teams can develop them independently. The only dependency between them is the communication, and you will have to make sure messages sent between them remain backwards-compatible. This requires some coordination, especially when different teams are responsible for different microservices.