In this lesson, the following topics are discussed:
- What is a distributed architecture?
- What challenges have to be solved?
What Is a Distributed Architecture?
A distributed IT system is an architectural paradigm and according to the Encyclopedia of Business Informatics Online Dictionary is defined as follows:
"A distributed IT system comprises subsystems (components in the broadest sense) that are coupled together within the framework of a specific architecture and handle tasks cooperatively."
In contrast, in a monolithic IT system, the functions of a system are bundled (centralized). The logical distribution of system functions among components can be accompanied by a coordinated physical decentralization in a computer network.
We understand all IT installations and services as components. For example, ERP On-Premise, SAP S/4HANA On-Premise and/or SaaS applications.
An Example of a Distributed Architecture
Below is an example of a customer landscape. You can see that many different technical systems communicate with each other with all their technical peculiarities.
What Challenges Have to Be Solved?
Due to heterogeneity, expensive and complex solutions must be sought, found, and implemented to the following challenges:
- Many different transport and message protocols
- Release management
- Monitoring
- Error identification and correction
- Latency
- Quality of service
- Security
- Availability of implementations
- Observability
- Documentation
One way to overcome these challenges is to use an API first approach.
An API-first approach is a design methodology where the primary focus during the development process is on designing the application programming interface (API) before any other aspects of the software solution. This approach emphasizes creating a well-defined and robust API that meets the needs of developers and integrators who use it to build applications, services, or integrations.
Key aspects of an API-first approach include:
- Design-Centric: API design becomes a central part of the software development life cycle. Design decisions prioritize clarity, consistency, and usability to ensure developers can easily understand and use the API.
- Iterative Development: Developers iterate on the API design based on feedback and evolving requirements before moving onto the backend implementation or other aspects of the application.
- Facilitates Collaboration: By defining the API early, different teams (front end, backend, mobile, third-party developers) can work concurrently and in sync. This reduces dependencies and accelerates development.
- Ensures Scalability and Flexibility: An API-first approach promotes scalability as it encourages modular, reusable components. It also provides flexibility to adapt to changing business requirements and technological advancements.
- Focus on Developer Experience (DX): DX becomes crucial, aiming to provide developers with clear documentation, SDKs (Software Development Kits), code samples, and testing tools to ease integration and usage of the API.
- Supports Ecosystems Growth: APIs designed with an API-first approach can foster an ecosystem around the platform or service, allowing for third-party integrations, partnerships, and innovation.
Summary
For automated technical processes, many different software components, different installations, technology, and spatial availability are often coupled via networks with different protocols. The functionalities of these implementations are called services. The interface is provided via APIs (Application Programming Interfaces). The type, location, and implementation of the APIs are irrelevant for now. These APIs are language agnostic. That's why we also speak of an API first architecture or approach. Cloud native architectures are based on APIs. This is accompanied by new challenges.