Scraped pages reach the back end, which publishes them to a Kafka topic. A Python sanitisation stage consumes that topic, checks and cleans the data, and publishes the result to a second topic, treated_data, which is written into Cassandra. On the query side, the front end calls the back end, which passes the query through an AI stage that reads from Cassandra and ranks the results. PostgreSQL stores users and their roles; logs are shipped to Grafana.
Redrawn from the project's data-flow, Kafka and user-management diagrams. The log path to Grafana is drawn from the back end only.