Talk

Decoding FastStream: A Deeper Dive into the Event Streaming Library

Thursday, May 23

16:20 - 16:50
RoomPanino
LanguageEnglish
Audience levelIntermediate
Elevator pitch

FastStream simplifies event stream development. Learn its origin, basics, and advanced features in our talk. This year, we dive into technical nuances to inspire developers and boost open source contributions.

Abstract

Here to make your journey through the intricate world of microservices and data streaming a whole lot smoother, FastStream was developed out of the need to seamlessly handle machine learning models in Kafka setups. Acting as a unifying tool, this Python library simplifies the complexities of building, testing, and deploying microservices, especially when it comes to efficient data streaming.

In the first part of our talk, we’ll start by introducing FastStream and how it came to be. We’ll explore why we created it and the history that led to its development. After that, we’ll move on to the basics of FastStream. We’ll walk you through the simple steps of creating services, connecting to message systems, and effectively handling messages. This basic knowledge is crucial as it is the foundation for diving deeper into FastStream’s advanced features and applications, which we’ll cover in the later part of our talk.

In the past year, our talks were focused on spreading the word about FastStream and raising awareness about its capabilities. This year, we’re shifting gears toward more technical talks. In the second half of the talk, we’ll focus on the technical nuances of FastStream—implementation details and the development environment. Hopefully, this will inspire other developers not only to adopt FastStream, but also to improve their open source contribution environments.

Intended Audience

We developed FastStream out of the necessity for an elegant solution to serve our ML models in a Kafka environment. It was mainly created for us, by us and this is why I am confident that this talk will be ideal for people that would describe themselves with the same words as we would ourselves: microservice developers, library enthusiasts, and data/AI scientists interested in optimizing their microservices with efficient data streaming using FastStream.

Key Takeaways

  • Learn about FastStream and how it simplifies microservice development, providing a streamlined approach to creating, testing, and deploying services for efficient data streaming
  • Empowering developers with FastStream insights:
    • Gain insights into FastStream’s implementation details, how we use decorators and context managers
    • Explore the FastStream development environment for inspiration in creating your own library and documentation

Outline

FastStream Introduction (5 mins):

  • Brief overview of FastStream and its evolution
  • History behind the development of FastStream
  • The motivation behind creating a tool for serving ML models in a Kafka environment

FastStream Basics (5 mins):

  • Creating your service with FastStream: A step-by-step guide
  • Connecting to message brokers (Kafka, RabbitMQ, NATS, Redis support)
  • Producing and consuming messages effortlessly with FastStream

FastStream “Advanced” Topics (5 mins):

  • Testing your FastStream-powered app: Leveraging in-memory tests for faster CI/CD pipelines
  • Seamless integration with other frameworks, especially with FastAPI
  • Deploying your microservice with FastStream

Implementation Details (5 mins):

  • Under the hood: Exploring the workings of FastStream’s “consumes” and “produces” decorators
  • Rerouting traffic for testing: Insights into how FastStream manages testing environments
  • Wrapping backends into FastStream: Understanding the integration process

FastStream Development Environment (5 mins):

  • Tools and technologies in FastStream’s development toolkit
  • Writing and testing documentation: Ensuring clarity for users
  • Intricate details of FastStream’s development process: A glimpse into the tools and practices that power FastStream’s continuous improvement
TagsAsyncIO, Abstractions, Microservices, FastAPI
Participant

Tvrtko Sternak

I am currently working as a Python developer at airt. In the past three years, I have gained valuable experience in the industry, including a year working on a microservice product that uses Apache Kafka for communication between services.

I am a strong believer in the power of open source software, and I enjoy learning from the open source community. My interests in the field at the moment include machine learning, model deployment, Apache Kafka, and advanced Python programming.