GithubHelp home page GithubHelp logo

ktor-webinar-real-time-event-system's Introduction

Ktor Webinar: Real-time Event System with Plugins


Overview

This repository showcases the power of Ktor plugins to build a real-time event processing system. The plugins are available in https://github.com/Flaxoos/extra-ktor-plugins

The system is comprised of:

  • Event Producers: Multiple Ktor servers generate events and publish them to a Kafka cluster, configured using the Ktor Kafka plugin. Event production is orchestrated using the Ktor Task Scheduler plugin.
  • Event Consumer: A Ktor server consumes events from Kafka (also using the Ktor Kafka plugin) and exposes a REST endpoint to retrieve the latest events. Rate limiting is implemented on this endpoint using the Ktor Rate Limiting plugin.
  • Client: A Ktor client demonstrates consumption of the consumer's endpoint, leveraging the Ktor Circuit Breaker plugin to prevent excessive requests and handle potential failures gracefully.

Features

  • Plugin-Driven Architecture: Demonstrates how Ktor plugins streamline the implementation of common, non-functional concerns for microservices.
  • Real-time Event Processing: Provides a working example of event streaming and asynchronous communication with Kafka.
  • API Resilience: Incorporates rate limiting and circuit breaking to safeguard the system's reliability.

Prerequisites

  • Java (Version 17 or later)
  • Gradle
  • Docker
  • Docker Compose

Getting Started

  • Start Infrastructure:

    docker-compose up -d
  • Run the Run system run configuration

  • Explore the documentation, the various plugin configurations and source code

  • Tweak the configurations as you see fit and see the effects on the system

Webinar Recording

  • coming soon

ktor-webinar-real-time-event-system's People

Contributors

flaxoos avatar

Watchers

Anton Arhipov avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.