In modern software development, microservices in general and self-contained systems have established themselves as a special approach to the web. Creating modules in independent finale artifacts promises technical benefits: independent deployment, targeted scalability and better maintenance.
Max Shorter is a senior advisor in Inoke. Their focus is on self -contained system, domain operated design, software development processes and practical architectural documentation.
But there are also disadvantages in technical separation: on one hand, modules that are part of a system of systems are not free from each other according to the definition. On the other hand, once the cut system for users should be brought together again to create a pleasant, uniform user experience.
Like distributed system Selfless systems So talk to each other for various reasons. To enable the necessary technical communication, there are many solutions, and not trivial to find one right for specific applications.
Good Hope Cat
Caps-thyyram (See Figure 1) It states that the distributed systems can only complete two of the stability (consistency), availability (availability) and reliability (partition tolerance) of three desirable properties.
- Stability The guarantee describes that each node of the distributed system knows the same status of data records.
- Availability This means that each non-flying node will have to respond to the access and writing of all in the appropriate time.
- Partition tolerance It is said that a non -flying knot should continue working despite the failure of one or more lumps.
Cap-theorem says that distributed systems should have a decision between division tolerance + stability or division tolerance + availability (Fig. 1).
Since compliance with continuity and guarantee of continuity and availability in the condition of non-geniusable failure is irrelevant, especially in web projects, the popular details of the theorem used are misleading in behavior. Finally, the decision to be made is whether the system guarantees a failure landscape stability or availability.
When deciding on a certain integration mechanism between the module in a system, the cap-theoram should play a role, as it prevents a sub-complicated view of the distributed world. Network nodes have daily failures On everyday life of IT departments And software -should not be ignored by the coumulator.
Coupling effects
A strong coupling means that a change in a module makes the necessary changes in others. What is already a problem in monolithic systems, distributed and distributed in distributed systems show themselves more clearly: strong coupling requires high communication efforts and leads to a long -term release cycle. A microservis architecture develops into a distributed monolith through a very strong coupling of individual systems, which combines the bad properties of both architectural approaches.
As part of a system of the system, a module may not be completely independently present, but the degree of coupling should be as low as possible. Since the decision for an integration mechanism can significantly affect the degree, it is extremely important to make careful decisions based on the selected quality criteria.
Using the example of shared code, Figure 2 shows how the use of specific techniques reduces the initial effort, but increases the degree of coupling. Keeping the initial effort low is an example of a poorly chosen quality criteria, as it has a unique effect and negatively has negative effects on moderate to long -term development.
Possible implementation of shared code and their effects on early efforts and coupling degrees (Fig. 2).
Running or development time?
There are many different approaches to integrate distributed systems. They can be divided into two categories very intactly: while in the context of cap-theoram, integration is a clear decision to characterize availability during the time of development, it is necessary to differentiate and differentiate during integration on the term.
Integration during development time is usually through shared code. You either provide a library with the parcel manager or use the version control system. This dissolves the dependence before the evidence of the perfection deformation of the integrated system, goes into the latest production during the construction process.
Since integration is a clear decision to characterize availability in the development period, the system does not guarantee a stability about integrated materials; Their update occurs as soon as possible with the next delivery for production.
A specific application of this type of integration represents the use of a cross-system pattern library, which provides subcistam UI components. This leads to equal user experience in all subcontams and reduces the effort with development teams. Here is more stability, because the condition of different colors or a button has little effect on the functionality of software.
The mechanism for time integration can be divided into two other categories: synchronous and asynchronous. The two have a feature simultaneously: they only dissolve the dependence during the operation in a runtime environment. It results in a slightly higher degree of coupling than the degree of coupling, which is generated during an integration during the growth period. Because the change in the interface of a system can affect the other system without identifying it during development or peripinening process.
If a system is integrated into asynchronous term, it is independently in terms of time of user interaction. May be trigger, for example, information about events in other systems or planned time intervals. After triggering, the integrated module of the module is closed to integrate and translates it into a model that corresponds to its needs in relation to functional and cross-functional requirements.
Acinous is a decision for the characteristic of the decision availability for running time integration. For high availability and – unlike synchronous running time integration – low term coupling The final involvement is acceptedThis means that stability is not available immediately, but promises to a consistent state in the module at a time in the future. Depending on the condition, it can be a case within a millisecond, minutes or hours.
Unlike her asynchronous sister, synchronous running integration is often associated with the user interaction period. Any user interaction with the system represents a trigger: it is loading a website or clicking on hyperlink. After the trigger, the system, for example, loads the material from another system at the front end or even sends a full range of logically assembled inquiry into other systems. A decision for a synchronous running time integration is one for stability, as every request has an impact on availability due to the behavior of the module to be integrated. The duration between the module is more effect on the coupling and may dramatically marginal depending on the specific integration mechanism.
(Image: IX)
This is also an article Ix/developer special issue It is to be found that the software is aimed at the architect. In addition to classic architectural materials on methods and patterns, there are articles on socio -technical systems, quality assurances or architecture and society. Domain -powered design is only a subject in the form of team topology and security.
As authors, we were able to achieve well known experts, who pass on their knowledge in many exciting articles – such as it – for both architects and experts.