In this blog I'd like to talk about "Pull" and "Push" Architecture. Funny is that one cannot do without the other to achieve a balanced balance. Just like the tile wisdom states "
On the door of success is both pushing and pulling
(Op de deur van succes staat zowel duwen als trekken)".
To elaborate on the subject, I want to provide the two concepts with a daily example. We all know the "Pull" or "pull" from visiting a (traditional) website. You extract information (webpage or data) from a (web) server. The initiative lies with the applicant, you. With a "Push" you can think of the notifications that you receive on a device, such as a telephone. The initiative then lies with the sender, for example a news site (NOS, RTL etc.). An important one is the NL-Alert. This message warns you and is sent from the government (emergency services for example). It becomes a bit more complicated if it is a combination of the two (Pull and Push). It is not for nothing that I used the word "traditional" in the first example. You see more and more often that information is initially "Pulled" from a location and as soon as the connection is there, additional information is "pushed".
In a good modern architecture, you actually see the same thing happening at the top, data (data) is being 'pulsed'. The underlying layer uses (micro) services and the push principle for editable processes and to put the data at strategic locations. You often see this together with a kind of message bus to which micro services are subscribed. You can extend this line to software architecture (within the microservices) "Event-Driven-Development" (EDD).
Okay, why do we need it? Simple.
We have more and more complex data at our disposal and we want to extract information from it quickly, preferably tailored to personal wishes, on different platforms
(website, mobile, links, etc.). It is therefore important to group data collections and to facilitate pull requests from those groups. Between the data groups, the data can be updated by means of the "push" principle, for example by (micro) services. These data groups can then be executed redundantly (scalable) depending on the need for availability or speed. This way you prevent the core architecture from getting stuck. Interfaces with big data structures (see also previous blog 'Big Data',
https://www.casperotto.nl/en-gb_big_data_strategy) can be made with this and you can gain insights in a more Agile way (see also previous blog 'Business Intelligence' ,
https://www.casperotto.nl/en-gb_business-intelligence). The ultimate goal is to establish a scalable and flexible concept on which an organization can shape its business strategies. For both now and in the future.
Such a Pull and Push architecture is never really finished, sometimes you have to redefine collections (refractor) in order to maintain or strengthen the power. Good architecture is always on the move; '... There's work to be done ...'.
Casper.
Sources:
A Temporal Analysis of Posting Behavior in Social Media Streams
https://pdfs.semanticscholar.org/b5a3/4d0d75cbc3a8b8cc0e46c880345306f939a0.pdf?_ga=2.261797828.851108803.1576604236-815865708.1576604236
Efficient Monitoring Algorithm for Fast News Alert
http://oak.cs.ucla.edu/~cho/papers/sia-blog.pdf
DCCast: Efficient Point to Multipoint Transfers Across Datacenters
https://www.researchgate.net/publication/316921061_DCCast_Efficient_Point_to_Multipoint_Transfers_Across_Datacenters