Three-layer architecture has been used for a while now to develop web applications. Despite having a logically modular construction, the application is handled as a monolith, that’s why the whole software needs to be rebuilt and deployed after every change. Also, any change can cause an error in other parts of the application. Further problems are scaling and becoming too complex to fully understand. Microservice architecture can solve these issues by structuring the application as a collection of loosely coupled services, which implement business capabilities. However, utilizing this architecture can cause problems which haven’t occurred before. Deployment and maintenance becomes more complex with many standalone software. Also, because the application data is being handled by multiple processes, sustaining the data consistency becomes a more challenging task, just like user authentication.
In my thesis I’m searching for a possible solution for these problems, demonstrating them with an example. To achieve this, I’m creating a simple web application showing the steps and explaining the used technology to solve each problem. In the application we can see an example for token based user authentication in a distributed system, and an example of how can the data consistency be ensured by asynchronous communication between microservices. We can also see how containerization can solve deployment difficulties.
The presented solutions are just one of many and not always viable solutions, but give a good idea of the difficulties of the architecture.