GithubHelp home page GithubHelp logo

tmwalter98 / knative-slack-bolt Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 146 KB

Slack Bolt application built on Knative Serving to manage and relay product inventory tracking notifications. This project leverages Knative-eventing Kafka source with Cloud Events to efficiently manage and relay notifications.

Python 98.20% Dockerfile 1.80%
cloudevents kafka knative knative-eventing knative-serving kubernetes microservices python slack-bolt

knative-slack-bolt's Introduction

Python Slack Bolt App Webstore Inventory Tracker on Knative

Build and Push to Docker Hub

This project is work in progress

Project Background

I wanted to track inventory for a handful of sites with high demand products and this Slack app the user facing portion used to select products of interest and relay stock and price change notifications.

Inventory Tracking Scraping Services not contained herein

Inventory data is aquired on a scheduled basis using Prefect aataflow automation. Prefect Cloud is usde to orchestrate flow runs which are executed by the Prefect Agent in ECS. Up-to-date product inventory data is retained within RDS and changed trigger the creation of audit records.

Inventory Tracking Notification and Management Services

The Inventory Tracking Notification and Management Services are backed by the same RDS instance as the scraping services.

graph TB
    linkStyle default interpolate linear

    subgraph kubernetes["Microk8s"]
      direction LR
      subgraph knative[Knative]
        direction LR
        kn_source_kafka(Knative Source for Apache Kafka)
        kn_slack_bolt(fab:fa-python Knative Slack Bolt)
        kn_source_kafka -- CloudEvents --> kn_slack_bolt
      end
      subgraph kafka[Kafka Services]
        direction LR
        debezium[Debezium CDC]
        kafka_topic[product_notifications topic]
      end
    end
    subgraph Y["fab:fa-aws Amazon Web Services"]
      direction LR
      rds[(RDS PostgreSQL)]
    end

    slack(fab:fa-slack Slack)
    rds --> debezium --> kafka_topic
    kafka_topic --> kn_source_kafka
    kn_slack_bolt <-. Websockets .-> slack
    kn_slack_bolt <--> rds
    
    click kn_source_kafka "https://knative.dev/docs/eventing/sources/kafka-source/" "Knative Source for Apache Kafka" _blank

Components

Slack Bolt App

Python Slack Bolt application that runs on Knative Serving and receives notifications via CloudEvents from Knative Eventing's Knative Source for Apache Kafka.

This app also features the ability for Slack users to search available products and toggle notifications.

Knative Source for Apache Kafka

Knative Source for Apache Kafka listens to Kafka topics and relays messages to specified sink as a Cloud Event.

Apache Kafka Broker

Notification event topic broker.

Debezium CDC Connector

Listens to change events for specific tables and sends them to the Slack Bolt App to deliver the notification.

knative-slack-bolt's People

Contributors

tmwalter98 avatar

Watchers

 avatar

Forkers

andrespalacio

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.