Kafka is open source event streaming software that lets you build event driven systems. While there are other guides on it, I’d like focus on visualizing the main concepts behind Kafka. That way, when you read through the other guides, you’ll feel much more confident.

With that, let’s begin!

Before we begin, let’s make sure we’re on the same page about Kafka. It’s event streaming software. It allows backend services (usually in micro-services architecture) to communicate with each other.

Two services communicating via Kafka

Producers and consumers are services that listen to or send messages in Kafka. These services are your backend services.

Photo by Anne Nygård on Unsplash

React is a popular framework. Up until version 16.8, most React components were class based components. I learned and primarily used React class components when I first started with React. Class components were great because they were the only way to use state. With hooks, you can use now use state in functional components.

Because functional components are cleaner to write and easier to read, I believe they’ll help your organization write better web-apps quicker. I also think functional components will lower the barrier for new engineers learning React. …


This is part of a series to understand Spring and Spring Boot. Let’s go through some of the fundamentals before jumping into Spring Boot (next article). These descriptions will have more code than I typically like to use but it will help with the visualizations.

We’ll take a look at Beans, Inversion of Control, and Dependency Injection.

Most of your business logic will be in beans.

Simple bean. Just a container for your object

A bean is a container for a generic object you may create. Let’s say you have an AuthService class and it contains some business logic (to create public/private keys or bearer tokens or whatever)…

I’m a visual learner. If you’re anything like me, you like to understand the higher up concepts before diving into details.

I’ve started using Flutter at work and at home. It’s incredible how easy it is to build user interfaces quickly. It’s really great. And with my apps, I heavily rely on the Bloc pattern for state management.


Bloc relies on three components. An event, a bloc, and a state.

Event, Bloc, and State

As you can see, an event comes in, and then the bloc determines what state should result. An example might help.

Let’s say the result of some api call, comes…

Timothy Stepro

Software engineer by day, software engineer by night.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store