Sustainable Software Development
Scalability, reliability, cost efficiency, low latency… the requirements for modern software are manifold and together with the use of cloud infrastructures new challenges arise. A good software architecture creates the basis to meet these requirements.
The microservice architecture helps to scale backend services independently as needed and ensure the economics of the software as demand fluctuates. In addition, services can be deployed independently, enabling more frequent and faster releases. Furthermore, teams can develop independently on different parts of the application.
However, a distributed software architecture faces several challenges that must be addressed:
- Data integrity
- Authentication, authorization, and session management
- Event or error logging
- Communication and exchange with other systems and services
In my development career, I have dealt with these topics. Among other things, special attention was paid to the implementation of business processes via enterprise services bus systems that enable communication between multiple systems. With the help of event-driven architecture, processes can be implemented that react flexibly to the current scaling and failures of systems and can be triggered again after the errors have been corrected.
Tracking and logging events gives insight into what is being used in the software and where problems are occurring. Here, I have mainly used Application Insights in recent years, which is easy to integrate into .NET.
Secure authorization is a fundamental component of many applications today. In the web sector, the OAuth protocol is the main choice here. So far, I have mainly worked with the Microsoft solution “Azure AD B2C”. This is a customer identity access management solution that takes over the authentication of end users from the developed applications. In addition to its own user store, third-party systems such as Google, Microsoft or Facebook can also be connected to make user registration and login as simple as possible.
Do you need support in implementing distributed software architectures? Then contact me today!