[1/2] Observability in an Asynchronous World • James Eastham • GOTO 2024 (Category Architecture)
Interesting. speech from James EasthamServerless Developer Advocate from Datadog, on event-oriented architecture and how to provide observability in it. There is nothing about Datadog in the report itself, but there is an end-to-end example of a pizzeria whose architecture the author makes in the EDA style and shows how to make it observable. Theses are like this.
- In distributed systems, it’s hard to know what went wrong with a problem.
- In the case of synchronous interactions, it is clear how to do it, but in the asynchronous world, observability becomes even more complicated.
- At some point, as the scale of the systems grew, we came up with a lot of individual services.
- When building them, it is customary to strive for low coupling and high cohesion, conditionally, the connections between services should be made weak, but within the service, the logic should be strongly tied to each other.
- One way to solve the problem of communication between services was to switch to event-driven architecture. Here the author shows his architecture for the piceria, where there is an order processing service, kitchen service, delivery service, which interact through events.
- Next, the author understands what an event is (This is an indisputable fact that cannot be changed.). It is important that the author is interested in business events that set the system in motion. On this topic, I recommend to study the technique of event storming, which I told earlier
- Events are a kind of message, but the event has already happened in the past. There's also a "team" message that tells you to do something in the future. There are three types of events: notifications, events with the transfer of state. (event-carried state transfer) and domain events (This is from event sourcing.). I recommend reading mine. analysis EDA and event sourcing from the book "Learning DDD" by Vlad Hononov
- In fact, the interaction of services is carried out through a publish/subscribe template, manufacturers publish events with a specific scheme, and consumers can use them. (useless)
- This interaction allows you to make an asynchronous system, which allows you to disconnect producers from event consumers. Responsibility for Control and Consumption of Events at Consumers
Continuation in next post.
#SRE #Architecture #DistributedSystems #Software