Farmacy Food is a tech-enabled healthy food startup that creates tasty meals around people's dietary needs and active lifestyles to support their overall well-being.
Their mission is to make health and wellness radically affordable and accessible.
Let me explain the basic concept of Farmacy Food:
- Farmacy Food is a “Ghost Kitchen” which will prepare the meals.
- We use Smart Fridges and Sub-let spaces in other businesses as our Points of Sale. So, the meals are delivered to these POS from the Kitchen.
- Customers will check availability of meals using Mobile/Web App in the nearby Points of Sale.
- Customers go to the nearest available POS and purchase or pick-up the meals.
- The system has to maintain the inventory levels in the Smart Fridge and other POS.
Some Long Term goals are:
- Allowing multiple vendors or kitchens to provide meals using our system.
- Provide personalized recommendation based on user profile & purchase history.
- Customers
- Vendors
- Kitchens
- Smart Fridges
- Kiosk / POS Systems
- Admin
Architecture Approach for Farmacy Food Service - Decision Records
Moving ahead with the Serverless design for the Farmacy Food Service.
Decision Record: POS Integration Design
Architecture Decisions:
Inventory Updates Communicaiton
Architecture Decisions:
Component | Description | Architecture Characteristics |
---|---|---|
Inventory | As this is one of the system's core components, it need to be highly available, provide necessary responses to other system services in short time. |
1- Scalability 2- Performance 3- Availability 4- Reliability |
Expiry Tracker |
This job needs to run daily but should be quick enough to analyze all items that are expired. |
1- Performance |
Feedback | This component is highly needed to render the menu, and thus needs to be highly available and performant. |
1- Performance 2- Availability 3- Customizable |
User Profile | User Profile will provide users' data and authentication services | 1- Availability 2- Performance 3- Reliability 4- Scalability |
Coupons | Coupons service will be used mainly to create promotional coupons and validate them. | 1- Availability 2- Reliability 3- Customizable |
Menu Catalog | Menu Catalog will hold the menu for all enabled items and it will manage adding/removing/disabiling menu items as well as listing menu items for customers. | 1- Availability 2- Performance 3- Customizable 4- Scalability 5- Reliability |