<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Workshops on Viktor Gamov</title><link>https://gamov.io/workshops/</link><description>Recent content in Workshops on Viktor Gamov</description><generator>Hugo</generator><language>en-us</language><copyright>2011–2026 Viktor Gamov</copyright><lastBuildDate>Wed, 15 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://gamov.io/workshops/index.xml" rel="self" type="application/rss+xml"/><item><title>Hands-On with Confluent Cloud: Apache Kafka, Flink, and Tableflow</title><link>https://gamov.io/workshops/confluent-cloud-kafka-flink-tableflow/</link><pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate><guid>https://gamov.io/workshops/confluent-cloud-kafka-flink-tableflow/</guid><description>A 2-hour hands-on workshop building a real-time cryptocurrency analytics pipeline with Apache Kafka, Flink SQL, Tableflow, and DuckDB on Confluent Cloud.</description></item><item><title>API design and APIOps</title><link>https://gamov.io/workshops/apiops-devnexus-2022/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gamov.io/workshops/apiops-devnexus-2022/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;Building an API is just the first step.
You also need to deploy that API and help your customers onboard to drive API consumption.
Design APIs in Insomnia, generate configurations for Kong Gateway and publish REST, GraphQL, and gRPC services to the Kong Dev Portal to enable your audience.
In this workshop, we will go through all steps of the API Management cycle - from designing API specifications to publishing APIs for public consumption.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Learn how to build event-driven microservices with Apache Kafka, Kotlin, and Ktor</title><link>https://gamov.io/workshops/ktor-kafka-2021/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gamov.io/workshops/ktor-kafka-2021/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;How can I implement an average aggregation that implements incremental functions, namely count and sum?&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Kafka Streams natively supports &lt;em&gt;incremental&lt;/em&gt; aggregation functions, in which the aggregation result is updated based on the values captured by each window.
Incremental functions include &lt;code&gt;count&lt;/code&gt;, &lt;code&gt;sum&lt;/code&gt;, &lt;code&gt;min&lt;/code&gt;, and &lt;code&gt;max&lt;/code&gt;.
An average aggregation cannot be computed incrementally.
However, as this tutorial shows, it can be implemented by composing incremental functions, namely count and sum.
Consider a topic with events that represent ratings of movies.
In this tutorial, we’ll write a program that calculates and maintains a running average rating for each movie.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Microservices with Kafka Streams, Spring Boot and Kubernetes</title><link>https://gamov.io/workshops/christmas2020/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gamov.io/workshops/christmas2020/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;This is a brief manual for a workshop that taken place online at &lt;a href="https://youtube.com/confluent" class="bare"&gt;https://youtube.com/confluent&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="workshop-prerequisites-and-setup"&gt;&lt;a class="anchor" href="#workshop-prerequisites-and-setup"&gt;&lt;/a&gt;Workshop prerequisites and setup&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="prerequisites"&gt;&lt;a class="anchor" href="#prerequisites"&gt;&lt;/a&gt;Prerequisites&lt;/h3&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Ensure you install the following toolset on your computer:&lt;/p&gt;
&lt;/div&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://confluent.cloud"&gt;Confluent Cloud&lt;/a&gt;&lt;/p&gt;
&lt;div class="admonitionblock tip"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-tip" title="Tip"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
You should have your login and password information handy after you sign up for Confluent Cloud.
The &lt;code&gt;ccloud&lt;/code&gt; init script will ask you for your login information.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://docs.confluent.io/current/cloud/cli/install.html"&gt;Confluent Cloud CLI&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Docker (We use Docker to build images locally)&lt;/p&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://docs.docker.com/docker-for-mac/install/"&gt;install Docker Desktop for MacOS&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description></item><item><title>Using Apache Kafka® and Spring Platform to Build Event-Driven Microservices</title><link>https://gamov.io/workshops/cnfl-pivotal-nyc-2020/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gamov.io/workshops/cnfl-pivotal-nyc-2020/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;This is a playbook of the workshop on running Event-driven microservices on PKS (together with Pivotal)
The code of the example application is available on &lt;a href="https://github.com/gAmUssA/springboot-kafka-avro"&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 70%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.1&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;02/11/2020&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Confluent + Pivotal Workshop in NYC 2020&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;10/7/2019&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial revision for Spring One Platform 2019&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="prerequisites"&gt;&lt;a class="anchor" href="#prerequisites"&gt;&lt;/a&gt;Prerequisites&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Java 8+&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://confluent.io/download/"&gt;Confluent Platform 5.4 or newer&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: &lt;a href="http://confluent.io/cloud"&gt;Confluent Cloud account&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description></item><item><title>Using Apache Kafka® and Spring Platform to Build Event-Driven Microservices</title><link>https://gamov.io/workshops/cnfl-pivotal-ord-2020/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gamov.io/workshops/cnfl-pivotal-ord-2020/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;This is a playbook of the workshop on running Event-driven microservices on PKS (together with Pivotal)
The code of the example application is available on &lt;a href="https://github.com/gAmUssA/springboot-kafka-avro"&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 70%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.2&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;02/18/2020&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Confluent + Pivotal Workshop in Chicago 2020&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.1&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;02/11/2020&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Confluent + Pivotal Workshop in New York 2020&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;10/7/2019&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial revision for Spring One Platform 2019&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="prerequisites"&gt;&lt;a class="anchor" href="#prerequisites"&gt;&lt;/a&gt;Prerequisites&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Java 8+&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://confluent.io/download/"&gt;Confluent Platform 5.4 or newer&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Optional componenrs&lt;/em&gt;:&lt;/p&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://docs.confluent.io/current/cli/installing.html"&gt;Confluent CLI&lt;/a&gt; for local testing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://confluent.io/cloud"&gt;Confluent Cloud account&lt;/a&gt; for cloud testing&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description></item><item><title>Using Apache Kafka® and Spring Platform to Build Event-Driven Microservices</title><link>https://gamov.io/workshops/springone19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gamov.io/workshops/springone19/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;This is a playbook of &lt;a href="https://springoneplatform.io/2019/workshops/confluent"&gt;the workshop&lt;/a&gt; delivered at SpringOne Platform 2019 in Austin, TX.
The code of the example application is available on &lt;a href="https://github.com/gAmUssA/springboot-kafka-avro"&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="prerequisites"&gt;&lt;a class="anchor" href="#prerequisites"&gt;&lt;/a&gt;Prerequisites&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Java 8+&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://confluent.io/download/"&gt;Confluent Platform 5.3 or newer&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: &lt;a href="http://confluent.io/cloud"&gt;Confluent Cloud account&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="lets-start-building-the-app"&gt;&lt;a class="anchor" href="#lets-start-building-the-app"&gt;&lt;/a&gt;Let’s start building the app&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;As always, we’ll begin by &lt;a href="http://start.spring.io/"&gt;generating a project starter&lt;/a&gt;.
In this starter, you should enable &amp;#34;Spring for Apache Kafka&amp;#34;, &amp;#34;Spring for Apache Kafka Streams&amp;#34;, &amp;#34;Cloud Stream&amp;#34; and &amp;#34;Spring Web Starter.&amp;#34;&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Workshop — Developing Event-driven Microservices with Spring Boot, Confluent Cloud, Kotlin, and Java.</title><link>https://gamov.io/workshops/springone2020/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gamov.io/workshops/springone2020/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;Developing Event-driven Microservices with Spring Boot, Confluent Cloud, Kotlin, and Java.&lt;/p&gt;
&lt;/div&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="workshop-prerequisites-and-setup"&gt;&lt;a class="anchor" href="#workshop-prerequisites-and-setup"&gt;&lt;/a&gt;Workshop prerequisites and setup&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="prerequisites"&gt;&lt;a class="anchor" href="#prerequisites"&gt;&lt;/a&gt;Prerequisites&lt;/h3&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Ensure you install the following toolset on your computer:&lt;/p&gt;
&lt;/div&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://confluent.cloud"&gt;Confluent Cloud&lt;/a&gt;&lt;/p&gt;
&lt;div class="admonitionblock tip"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-tip" title="Tip"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
You should have your login and password information handy after you sign up for Confluent Cloud.
The &lt;code&gt;ccloud&lt;/code&gt; init script will ask you for your login information.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://docs.confluent.io/current/cloud/cli/install.html"&gt;Confluent Cloud CLI&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Docker&lt;/p&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://docs.docker.com/docker-for-mac/install/"&gt;install Docker Desktop for MacOS&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Docker Compose (installed with Docker Desktop)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description></item></channel></rss>