DEV Community

Wojtek Krzywiec
Wojtek Krzywiec

Posted on

Food Delivery App

Overview of My Submission

This is a very simple food delivery app. It allows to search for food and then order and delivery it to your home.

The idea behind this was to build an event-driven distributed system. It contains 5 microservices which communicates with each other via events (most of the time).

Apart from that I wanted to try to implement a simple event sourcing system in which all business events are stored as a sequence of state-changing events.

In this project all these concepts are covered with Redis.

But this is not everything! It also uses other Redis modules, e.g. RedisJSON and Redis Search to show how easy it's to build a reliable system with Redis.

Submission Category: Microservice Mavens

Video Explainer of this project

Language Used

  • Java/Spring
  • JS/React

Link to Code

Food Delivery app

This is a very simple food delivery distributed system. It allows to search for food and then order them with a delivery.

image-1 image-2 image-3 image-4

The entire system is made of 5 microservices (1 React, 4 Java/Spring):

Overview video (Optional)

Here's a short video that explains the project and how it uses Redis:

Watch the video

How it works

Here is the overview of a system architecture with used Redis modules:


Most of the communication is based on commands and events. E.g. in order to place an order a proper command…

Additional Resources / Info


food search



completed orders

Top comments (1)

alinadunec profile image
Alina Dunec

Hello! When creating an application, it is important to know what features and functions you need. A courier management system usually includes several mandatory blocks that must be implemented. These features include:

Login and profiles. The login and profile functions are used to identify
order information. This function is necessary to ensure flawless delivery of food and beverages
delivery confirmation.
navigation. This function ensures that your orders will be delivered on time and without any delays.
communication tools. Courier management applications can use several means of communication: calls and chats.
notifications. The app can send notifications to the courier about new orders, expiring deliveries, order status updates, etc.
admin panel. This screen often displays information about the most popular and profitable products from the catalogue.

Read more about creating an app courier services in this article