sec-challenge

services

  • producercron: periodically sends messages to the queue about which data to fetch from the CVE API. automatically detects changes since the last invocation and queues only the updated records to be written by consumer service
  • consumer: consumes messages from rabbitmq queue to fetch data from the CVE API and writes it to the database. it also fetches data from the database when requested by the web app
  • redis: used for caching responses and serializing/deserializing messages across services
  • rabbitmq: used as a task queue across services
  • mongodb: the database used to store CVE records
  • web: web application that fetches CVE data and displays it on the frontend. it does not interact with the database directly but through rabbitmq and data writer (consumer) services