Redis Hackathon: EmpFriendly - Backend
Tags: redishackathon, redis, microservices
Published: 2022-08-23 10:44:00

### Overview of My Submission

**EmpFriendly - Support your employees and strive to be better**

Inspiration is came from "Workers has different purpose to do in daily, so why don't we find something that make opportunity for our employees"

This project will show the overview of microservices architecture that design base on Cloud-Native approach (actually, some parts still missing because need to compete with the times), In this regards, I design to show how we can implement it from scratch including RESTful/GraphQL API, Aggregation Pattern, Asynchronous messaging with Pub/Sub and Streams.

The main purpose of this project is to highlight the implementation of microservices from scratch (how they work, how they communicate each other) and show the complexity of distributed systems. In the meanwhile, find the capabilities of Redis-OM Libraries.

**Tech Stack**

- Spring Boot/WebFlux [Java/Kotlin] + Redis OM Spring
- Sanic, FastAPI [Python] + Redis OM Python
- Redis Stack (Cloud)
- Kubernetes (Deployment/Service/Secret/ConfigMap)


### Submission Category: 
Microservice Mavens


### Video Explanation

[![Overview explaination video](https://img.youtube.com/vi/ML5Vc8LkZwg/0.jpg)](https://youtu.be/ML5Vc8LkZwg)


[Note]: # (This is where you can embed the optional bonus video you created to accompany your submission. Ensure your video is published publicly to YouTube and you’ve used the embed tag here to share it with us. By opting to include a video, you will be eligible for BONUS prizes. Learn more in the announcement post.)


### Language Used
Java/Spring, Kotlin/Spring, Python/Sanic, Python/FastAPI


### Link to Code

{% embed https://github.com/marttp/emp-friendly %}


### Additional Resources / Info

[EmpFriendly - Docker Hub Queries](https://hub.docker.com/search?q=emp-friendly)
[Spring Boot](https://spring.io/projects/spring-boot)
[Spring WebFlux](https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html)
[Redis OM Spring](https://github.com/redis/redis-om-spring)
[FastAPI](https://fastapi.tiangolo.com/)
[Sanic](https://sanic.dev/en/)
[Redis OM Python](https://github.com/redis/redis-om-python)


#### 

### Demo Videos

[![Walkthrough video](https://img.youtube.com/vi/B-5_xpC3D8A/0.jpg)](https://youtu.be/B-5_xpC3D8A)


### Screenshots/Architecture

#### High-Level Design
![High-Level Design](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/taar74zajxzl3t4zllvi.png)

#### Kubernetes deployment

![Microservices Deployment](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mxf8kd78s3vjep2z34c9.png)


#### [Scenario 1] - Admin level (who can manage on this role) manipulate data

![Admin level manipulate internal data](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z1846a9m7uaz1m1umsyf.png)

#### [Scenario 2] - Pay IC Points

![Pay IC Points](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3fbz9s0k8mkc5w7s17bi.png)

#### [Scenario 3] - Give rating to restaurant/driver

![Give rating](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9dyzooahh8231qom7m5u.png)

#### [Scenario 4] - Driver accepted Deliver/Journey => Start collect location of drivers

![Driver accepted Deliver/Journey](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dbiz0mf27hd2z7wwusci.png)

#### Example QR Code for payment

![Example QR Code for payment](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e33y4kbcticcewd67li8.png)


- - - 


* _Check out [Redis OM](https://redis.io/docs/stack/get-started/clients/#high-level-client-libraries), client libraries for working with Redis as a multi-model database._
* _Use [RedisInsight](https://redis.info/redisinsight) to visualize your data in Redis._
* _Sign up for a [free Redis database](https://redis.info/try-free-dev-to)._