<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Event-Driven on Atamel.Dev</title><link>https://atamel.dev/tags/event-driven/</link><description>Recent content in Event-Driven on Atamel.Dev</description><generator>Hugo</generator><language>en</language><managingEditor>atamel@gmail.com (Mete Atamel)</managingEditor><webMaster>atamel@gmail.com (Mete Atamel)</webMaster><lastBuildDate>Mon, 13 May 2024 09:24:23 +0100</lastBuildDate><atom:link href="https://atamel.dev/tags/event-driven/index.xml" rel="self" type="application/rss+xml"/><item><title>AsyncAPI gets a new version 3.0 and new operations</title><link>https://atamel.dev/posts/2024/05-13_asyncapi_30_send_receive/</link><pubDate>Mon, 13 May 2024 00:00:00 +0000</pubDate><author>atamel@gmail.com (Mete Atamel)</author><guid>https://atamel.dev/posts/2024/05-13_asyncapi_30_send_receive/</guid><description>&lt;p&gt;Almost one year ago, I talked about &lt;a href="https://www.asyncapi.com/"&gt;AsyncAPI&lt;/a&gt; &lt;code&gt;2.6&lt;/code&gt; and
how confusing its &lt;code&gt;publish&lt;/code&gt; and &lt;code&gt;subscribe&lt;/code&gt; operations can be in my &lt;a href="https://atamel.dev/posts/2023/05-18_asyncapi_publishsubscribe_refactor"&gt;Understanding
AsyncAPI&amp;rsquo;s publish &amp;amp; subscribe semantics with an
example&lt;/a&gt; post.&lt;/p&gt;
&lt;p&gt;Since then, a new &lt;code&gt;3.0&lt;/code&gt; version of AsyncAPI has been released with breaking changes
and a totally new &lt;code&gt;send&lt;/code&gt; and &lt;code&gt;receive&lt;/code&gt; operations.&lt;/p&gt;
&lt;p&gt;In this blog post, I want to revisit the example from last year and show how to
rewrite it for AsyncAPI &lt;code&gt;3.0&lt;/code&gt; with the new &lt;code&gt;send&lt;/code&gt; and &lt;code&gt;receive&lt;/code&gt; operations.&lt;/p&gt;</description></item><item><title>Google Cloud Pub/Sub + AsyncAPI</title><link>https://atamel.dev/posts/2023/05-25_asyncapi_googlepubsub/</link><pubDate>Thu, 25 May 2023 00:00:00 +0000</pubDate><author>atamel@gmail.com (Mete Atamel)</author><guid>https://atamel.dev/posts/2023/05-25_asyncapi_googlepubsub/</guid><description>&lt;p&gt;&lt;figure&gt;
 &lt;img src="https://atamel.dev/img/2023/pubsub_asyncapi.png" alt="Cloud Pub/Sub and AsyncAPI" /&gt;
 
 &lt;figcaption&gt;Cloud Pub/Sub and AsyncAPI&lt;/figcaption&gt;
 
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been covering different aspects of &lt;a href="https://www.asyncapi.com/"&gt;AsyncAPI&lt;/a&gt;
in my recent blog posts. In this final post of my AsyncAPI blog post series, I
want to talk about how to document Google Cloud&amp;rsquo;s Pub/Sub using AsyncAPI.&lt;/p&gt;
&lt;p&gt;AsyncAPI has pretty good support for Google Pub/Sub, thanks to contributions
from &lt;a href="https://twitter.com/whitlockjc"&gt;Jeremy Whitlock&lt;/a&gt;, an engineer from Google,
and the flexibility baked in AsyncAPI spec. Jeremy also has a nice &lt;a href="https://discuss.thiswith.me/posts/documenting-cloud-pubsub-using-asyncapi/#server-object"&gt;blog
post&lt;/a&gt;
on this topic that you can read for more details.&lt;/p&gt;</description></item><item><title>CloudEvents + AsyncAPI</title><link>https://atamel.dev/posts/2023/05-23_asyncapi_cloudevents/</link><pubDate>Tue, 23 May 2023 00:00:00 +0000</pubDate><author>atamel@gmail.com (Mete Atamel)</author><guid>https://atamel.dev/posts/2023/05-23_asyncapi_cloudevents/</guid><description>&lt;p&gt;&lt;figure&gt;
 &lt;img src="https://atamel.dev/img/2023/cloudevents_asyncapi.png" alt="CloudEvents and AsyncAPI" /&gt;
 
 &lt;figcaption&gt;CloudEvents and AsyncAPI&lt;/figcaption&gt;
 
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been recently talking about &lt;a href="https://cloudevents.io/"&gt;CloudEvents&lt;/a&gt; and
&lt;a href="https://www.asyncapi.com/"&gt;AsyncAPI&lt;/a&gt;,two of my favorite open-source
specifications for event-driven architectures. In this blog post, I want to talk
about how you can use CloudEvents and AsyncAPI together. More specifically, I&amp;rsquo;ll
show you how to document CloudEvents enabled services using AsyncAPI, thanks to
the flexibility and openness of both projects.&lt;/p&gt;
&lt;h2 id="recap-cloudevents-and-asyncapi"&gt;Recap: CloudEvents and AsyncAPI&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s first do a quick recap CloudEvents and AsyncAPI.&lt;/p&gt;</description></item><item><title>Understanding AsyncAPI's publish &amp; subscribe semantics with an example</title><link>https://atamel.dev/posts/2023/05-18_asyncapi_publishsubscribe_refactor/</link><pubDate>Thu, 18 May 2023 00:00:00 +0000</pubDate><author>atamel@gmail.com (Mete Atamel)</author><guid>https://atamel.dev/posts/2023/05-18_asyncapi_publishsubscribe_refactor/</guid><description>&lt;p&gt;In &lt;a href="https://www.asyncapi.com/"&gt;AsyncAPI&lt;/a&gt;, a channel can have a &lt;code&gt;publish&lt;/code&gt; and
&lt;code&gt;subscribe&lt;/code&gt; operation. This can be confusing, depending on which perspective
you&amp;rsquo;re considering (server vs. user) and what you&amp;rsquo;re comparing against (eg.
WebSocket).&lt;/p&gt;
&lt;p&gt;In this blog post, I want to go through an example to show you how to construct
your AsyncAPI file with the right &lt;code&gt;publish&lt;/code&gt; and &lt;code&gt;subscribe&lt;/code&gt; semantics. As a
bonus, I also show you how to refactor your AsyncAPI files with common
configuration.&lt;/p&gt;</description></item><item><title>AsyncAPI Tools</title><link>https://atamel.dev/posts/2023/05-16_asyncapi_tools/</link><pubDate>Tue, 16 May 2023 00:00:00 +0000</pubDate><author>atamel@gmail.com (Mete Atamel)</author><guid>https://atamel.dev/posts/2023/05-16_asyncapi_tools/</guid><description>&lt;p&gt;In my &lt;a href="https://atamel.dev/posts/2023/05-12_asyncapi_basics/"&gt;previous post&lt;/a&gt;, I
talked about basic of &lt;a href="https://www.asyncapi.com/"&gt;AsyncAPI&lt;/a&gt;. In this post, I
want to get into more details on some tools around AsyncAPI.&lt;/p&gt;
&lt;p&gt;More specially, we&amp;rsquo;ll install AsyncAPI CLI and Generator, generate a sample AsyncAPI
definition, visualize it in AsyncAPI Studio, and generate code from it. You&amp;rsquo;ll see
how useful AsyncAPI can be in documenting and maintaining your event-driven architectures.&lt;/p&gt;
&lt;h2 id="install-asyncapi-tools"&gt;Install AsyncAPI tools&lt;/h2&gt;
&lt;p&gt;First, let&amp;rsquo;s install some of the AsyncAPI tools.&lt;/p&gt;</description></item><item><title>AsyncAPI Basics</title><link>https://atamel.dev/posts/2023/05-12_asyncapi_basics/</link><pubDate>Fri, 12 May 2023 00:00:00 +0000</pubDate><author>atamel@gmail.com (Mete Atamel)</author><guid>https://atamel.dev/posts/2023/05-12_asyncapi_basics/</guid><description>&lt;p&gt;&lt;figure&gt;
 &lt;img src="https://avatars.githubusercontent.com/u/16401334?s=200&amp;amp;v=4" alt="AsyncAPI Logo" /&gt;
 
 &lt;figcaption&gt;AsyncAPI Logo&lt;/figcaption&gt;
 
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Recently, I’ve been looking into &lt;a href="https://www.asyncapi.com/"&gt;AsyncAPI&lt;/a&gt;, an
open-source specification and tools to document and maintain event-driven
architectures (EDAs).&lt;/p&gt;
&lt;p&gt;In this blog post, I want summarize the basics of AsyncAPI and point to some
useful links to learn more. In future blog posts, I&amp;rsquo;ll get into more details of
AsyncAPI.&lt;/p&gt;
&lt;h2 id="asyncapi-why-what"&gt;AsyncAPI: Why? What?&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.asyncapi.com/"&gt;AsyncAPI&lt;/a&gt; is an open source initiative with the goal
of making event-driven APIs as easy as REST APIs. Fundamentally, it is a
&lt;strong&gt;specification&lt;/strong&gt; to define asynchronous APIs, similar to what
&lt;a href="https://www.openapis.org/"&gt;OpenAPI&lt;/a&gt; (aka Swagger) does for REST APIs.&lt;/p&gt;</description></item><item><title>CloudEvents Basics</title><link>https://atamel.dev/posts/2023/04-03_cloudevents_basics/</link><pubDate>Mon, 03 Apr 2023 00:00:00 +0000</pubDate><author>atamel@gmail.com (Mete Atamel)</author><guid>https://atamel.dev/posts/2023/04-03_cloudevents_basics/</guid><description>&lt;p&gt;I talked about CloudEvents in the context of event-driven architectures before.
In this post, let&amp;rsquo;s explore CloudEvents in more depth.&lt;/p&gt;
&lt;h2 id="cloudevents-why-what"&gt;CloudEvents: Why? What?&lt;/h2&gt;
&lt;p&gt;&lt;figure&gt;
 &lt;img src="https://avatars.githubusercontent.com/u/32076828?s=200&amp;amp;v=4" alt="CloudEvents Logo" /&gt;
 
 &lt;figcaption&gt;CloudEvents Logo&lt;/figcaption&gt;
 
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cloudevents.io/"&gt;CloudEvents&lt;/a&gt; is a popular specification for describing
event data in a common way with the goal of increasing interoperability between
different event systems.&lt;/p&gt;
&lt;p&gt;Google Cloud&amp;rsquo;s &lt;a href="https://cloud.google.com/eventarc/docs"&gt;Eventarc&lt;/a&gt;, open-source
&lt;a href="https://knative.dev/docs/"&gt;Knative&lt;/a&gt;, Azure&amp;rsquo;s Event Grid, and many more projects
rely on CloudEvent specification to define their event formats.&lt;/p&gt;</description></item></channel></rss>