 Okay. Hello, everyone. My name is Klaus Dysner. I work for SAP. And today I'll talk about cloud events. And I want to focus mostly on the benefits I see in cloud events. So that's also the background of the title of the presentation, but we'll come to that later on. So I want to start with something entirely different. It seems it's also about eventing. I will come to that. So way back when I started my programming journey, that was actually on this nice machine, an Atari ST. I don't know if anybody here remembers those kind of machines. And yes, what does that have to do with eventing? So those had already those nice graphical user interfaces. And to program those, you also needed to know something about events. And there were those C APIs we had. And I don't going to go, of course, into all the details of that function call you see here. But what you could do is you could pass back control to an operating system and let you get notified when the user did some kind of interaction, like a mouse button, selecting a menu item, those kind of user interface events. And what you can see here is also that there was a bitmap where you could select the type of event. So of course, this was quite efficient, just 16 bit to describe what events you're interested in. But why does that remind me of cloud events now? And cloud events, we also attach certain metadata to events to all kinds of messages. Here in the example, you see HTTP, the binary and the structured mode. We have also other protocols we support. And most importantly, in regards also to the example I had here with my old Atari computer is the type field you can see here. So what exactly, what type of event occurred? And that brings the commonalities. Events allow you to stand on the shoulders of giants. You can plug maybe some really simple logic into larger systems without understanding knowing all the details of those larger systems. You don't have to know about running a blob store or something. You just get notified when something new has been saved in there, for example. And of course, in programming, that is called sometimes also inversion of control. And that's also the background of the title of this whole presentation. Don't call us, we'll call you. And yeah, of course, between UI in programming and cloud events, there are also a lot of differences. UI is a fixed domain. You have a fixed set of events defined by the operating system or the framework. And it's running in a single process. So a rather well-defined environment. In cloud events, that's entirely different. You can define any kind of event about any kind of occurrence. And you have protocol bindings. One example you saw on the slide before. And it's really about creating also an ecosystem of event sources that support cloud events. And this protocol binding is necessary because cloud events is all about events in distributed systems. And this setup comes with quite a few new challenges. And some of them being shown here. If you emit an event into the network, it has to be routed. Of course, you have to serialize it to send it over the wire and the receiver as to deserialize and know how to deserialize it. There's also consistency questions. The different participants might not be in the same life cycle. They're deployed independently. They might even belong to different organizations. And on the other hand, events are really everywhere in distributed systems these days. As much as they are varying and the promos and the schemas, business logic they support, maybe also the kind of processing, you see here also Kafka and the picture, for example, there are still some things they all have in common. And wouldn't it be nice to have something that can leverage this commonality and that you could really process these events in a certain unified way? And that's what cloud events aims at supporting. We have defined a set of metadata to describe events. And it's also extensible. You can also add your own attributes. But we didn't touch the payload of the events, the business logic that is free. That's just the payload we focused on describing the event as such. And this gives a great benefit. If you remember the picture before, in all those environments, you can still trust an event having something like a source, a type. We have defined this for many protocols. HTTP Kafka and that's AMQP, MQTT, and maybe even more. And that's a great benefit to have this interoperability. You can even send events across those different protocols and still trust that the metadata will be in there. And the most recent initiative we have is X Registry. Here we aim at making events discoverable. So you can browse the registry and find event definitions, the descriptions, how events are transmitted. You can browse for schemas as well and even endpoints. So from where can you consume or where can you send events? Where can you subscribe to events? And this X Registry is extensible. The X stands for extensible. So it can even be extended to further kinds of metadata. And yeah, so if you want to learn more about this, as was already mentioned, there's the Project Pavillon. Please visit us there or attend our session. There will be a session on Friday about X Registry specifically. And we have also quite a few online resources. We have weekly calls where we discuss most recent pull requests, issues we have on GitHub. We have various Slack channels here. There are also specific ones for programming languages. But we have the ones for the SDKs, for cloud events in general. We have two GitHub organizations for cloud events and X Registry. And we have a mailing list. So it would be great if you are interested. And I'm not at the booth. I will probably be alone at that booth. So feel also free to contact me over Slack and DM me. Yeah, thank you. That would be all for cloud events.