Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

High level graph (ie draw.io) #65

Open
Gabisonfire opened this issue Feb 5, 2024 · 5 comments
Open

High level graph (ie draw.io) #65

Gabisonfire opened this issue Feb 5, 2024 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@Gabisonfire
Copy link
Collaborator

Is your feature request related to a problem? Please describe.
Would be a great idea to provide a graph of how a typical request is processed and where each component sits, it would help users and potentially devs that would like to contribute.

@Gabisonfire Gabisonfire added the enhancement New feature or request label Feb 5, 2024
@Gabisonfire
Copy link
Collaborator Author

I'm assigning this to you @iPromKnight since you wrote most of the logic, let me know if I can assist in any ways.

@iPromKnight
Copy link
Collaborator

Sure thing. Will get it done for tomorrow

@iPromKnight
Copy link
Collaborator

iPromKnight commented Feb 13, 2024

flowchart
  subgraph Producer Service
    A[Quartz Job: Scan XML feeds for new torrents]
    B[Process new torrents setting processed to false]
    C[Quartz Job: Process untagged torrents]
    D[Send untagged torrents to RabbitMQ queue]
    E[Mark torrents as processed=true in the database]
  end

  subgraph RabbitMQ
    RQ[Message Queue RabbitMQ]
  end

  subgraph Postgres
    PD[(Postgres Database)]
  end

  subgraph MongoDb
    MDB[(Mongo as a Cache)]
  end

  subgraph Consumer Service
    F[Pull messages from RabbitMQ queue]
    G[Build magnet URL and extract metadata]
    H[Identify torrents with IMDb ID or KitsuId]
    I[Tag video files and subtitles]
    J[Add metadata to the database]
  end

  subgraph Addon
    K[Process incoming IMDb ID and KitsUID requests]
    L[Check if Cached or Get from Postgres Cache and Return]
    M[Return torrents to Stremio]
  end

  A --> B --> PD
  C <--> PD
  C --> D --> RQ
  D --> E --> PD
  F --> RQ --> G --> H --> I --> J --> PD
  H --Store in mongoDb for multiple episodes and future lookups-----> MDB
  MDB --Check Cache to see if ids exist there first--- H
  K --> L <--> MDB
  L --> PD --> MDB
  L --> M

@iPromKnight
Copy link
Collaborator

iPromKnight commented Feb 13, 2024

Added as mermaid - but you can import mermaid to draw.io using Arrange -> Insert -> Advanced -> Mermaid
Just hit the copy icon, it'll add the flowchart to the clipboard

@Gabisonfire
Copy link
Collaborator Author

Mermaid is even better, thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants