Skip to content

ToxicToast/Azkaban_V4

Repository files navigation

Toaster

Node Version npm Version Typescript Version NX Version GitHub package.json dynamic GitHub commit activity (branch) GitHub last commit (by committer)

Warning: This project is a Work in Progress and is not yet ready for real world usage

Introduction

Azkaban is a complete Rewrite of my Microservices at Home.

Planned Services

  • Azkaban Services

    • Email Service
    • Webhook Service
      • Zapier
      • API Alerts
  • FoodFolio Services

    • Category
    • Company
    • Location
    • Type
    • Size
    • Item
    • Item Variant
    • Item Detail
    • Warehouse
    • Shoppinglist
  • Twitch Services

    • Api Service
    • Bot Service
    • Viewer Service
    • Messages Service
    • Streams Service
    • Channel Service
  • Warcraft Services

    • Character Service
    • Api Service
    • Raider IO Service
    • WowAudit Service
  • Co-Working Services

    • Task Service
  • UI Services

    • Admin UI
    • Foodfolio UI
    • CoWorking UI (Task List Overlay)
    • Blog UI

In Development

  • Azkaban Services
  • Twitch Services

Deployed Services

Needs Refactoring

Infrastructure

  • Docker (Containerization)
  • Kubernetes (Orchestration)
  • Traefik (Reverse Proxy)
  • Kafka (Message Broker)
  • MariaDB (Database)
  • NestJS (Backend Framework)
  • Redis (Cache)
  • ReactJS (UI)
  • Redux-Toolkit (State Management)
  • API Alerts (Alerting)
  • OpenTelemetry (Tracing)
  • SigNoz (Tracing - Visually)

Gateway

Info: The Gateway is the entry point for all requests to the services. It is responsible for routing requests to the correct service and publishes the correct Topic to the Message Broker.

Alerting

Info: Great Service for Alerting. It is used to monitor the API Post Requests which will notify me on my mobile that something new was created or a specific user logged in. (Event Driven Architecture)

SSE

Info: To have some sort of Realtime Communication between the Services, the SSE Service is used to publish Events to the UI. Since i don't want to use Websockets (and I don't need some sort of bidirectional communication), I've decided to use Server Sent Events.