FlinkFood

 

Project Description / Goal:

FlinkFood is a project aimed at revolutionizing the food delivery industry by implementing a robust Data Fabric solution using Apache Flink. The primary goal is to provide users with informed decisions about restaurant choices, customized recommendations, and real-time delivery management. The project focuses on seamlessly integrating data from various sources to create a unified "Single View" of essential data related to users, orders, restaurants, menus, ingredients, allergens, and customer order history. This project was meant as a demonstration for the customer to see what the capabilities of the Apache Flink engine.

Features:

  • Real-time data processing for restaurant interaction, dish selection and user interactions.
  • Efficient data aggregation system for diverse sources.
  • Single View repository for comprehensive data perspective of users, dishes and restaurants.
  • Swift response times for substantial volumes of data.
  • Integration of Change Data Capture (CDC) and Apache Kafka for data gathering.

Screenshots:

The Apache Flink Dashboard

The Grafana Dashboard

Architecture Overview:

 

The FlinkFood project follows a modularized system design with distinct interfaces for seamless interaction between modules. The architecture incorporates Apache Kafka and Zookeeper for node coordination. Key technologies include Apache Flink for stateful data stream processing, Debezium for change data capture, and MongoDB for storage of the single view. Additional technologies include Docker for containerization, PostgreSQL for relational databases, and Grafana for monitoring

 

List of technologies used:

  • Apache Kafka
  • Zookeeper
  • Apache Flink
  • Debezium
  • MongoDB
  • Docker
  • PostgreSQL
  • Grafana
  • MongoDB Compass

Demo Video:

Link to demovideo: https://www.youtube.com/watch?v=ykGKH_pdl2Y&ab_channel=VegardSjaavik

GitHub and Other Project Pages:

  • GitHub Repository: https://github.com/FlinkFood/FlinkFood

Contact Information:

  • Vegard Sjåvik: vgsjaavik@gmail.com