Skip to content
#Conference

Build Abstractions Not Illusions • Gregor Hohpe • YOW! 2023

#Conference #PlatformEngineering #SystemEngineering #Software #Architecture #DistributedSystems

In this report Gregor Hohpe It talks about abstractions and their benefits, and how excessive abstraction and exclusion of important things leads to illusions. (and flowing abstractions).

  • Intro The author shows his standard example with different geographic maps, which differ depending on the target and audience.
  • Platform abstraction - the author moves on platform abstraction It's about reducing the cognitive burden on the platform. And then there is an analogy with the machines and platforms that were used in the automotive industry to produce cars of different brands on the basis of one platform. This allowed you to save money by developing a quality platform and reusing it for different products.
  • Abstractions vs composition The author continues to give examples from the field of automotive industry and talks about the gas pedal. (Although this is not a gas pedal, but an acceleration pedal, which is even more obvious when we consider electric cars.). Next, he brings SQS-Lambda-SQS from AWS, and then proceeds to the pattern. scatter-gather patternIt was originally called the broadcast aggregate. The problem is that in these cases it is not the abstraction itself that is described, but its realization. Next, the author talks about the electric outlet, which is an excellent abstraction and the author explains why. (separation of interface and implementation, standardization of the interface,). But even an electrical outlet flows as an abstraction if there is a global disconnection of energy. (plug-in). Finally, the author talks about the abstraction of sockets. (sockets and packet routing). As a result, the author says that the composition is useful, but it differs from abstraction, since the combination of elements in this case does not provide a new abstraction.
  • Abstractions vs Illusions The author describes abstractions that go too far. For example, RPC. (remote procedure call)He describes it in the early 2000s, when RPCs tried to make it look like a local call and hide all the complexity. Since then, a lot of water has leaked and no one is doing it, but Gregor's Vietnamese flashbacks look strange here. In the end, the problem is described in such a way that in illusions we throw out important details or over-generalize to a state where our model is loaded with misleading people. Next, the author talks about the abstraction of platforms. Interestingly, as a representative of AWS, he rolls a barrel at the creators of IDP. (internal developer platform) inside companies on top of public clouds — in Gregor’s view, it often doesn’t add value, it just takes it away. (These arguments seem very biased to me.). And then Gregor shows a good abstraction in the form of a ledger database of two dynamo db and event bridge pipes in the middle. The essence of this thinking is that IDPs within companies should not just reduce the power of public services by tightening the screws, but rather create new abstractions that are useful to users within the company. “Good abstractions support broad usage.”
  • Distributed system abstractions In this part, the author pushes on asynchronous work with messages (asynchronous messaging) It adds to the abstraction of data flow and control flowWhich can be useful to understand. We are talking about puller, pusher, pool and driver Gregor goes on to show how understanding how control flow works makes standard abstractions useful.
  • Summary In conclusion, Gregor summarizes and says that

Good abstractions reduce cognitive load because they form a cohesive language and a mental model. Omitting relevant details is tempting but leads to dangerous illusions.

#Conference #PlatformEngineering #SystemEngineering #Software #Architecture #DistributedSystems