Customer
Our client is a pioneer in the fight against food waste, offering a food delivery service in the UK and Netherlands.
Their unique approach involves distributing 'odd' and surplus fruits and vegetables, sourced directly from farms, to consumers doorsteps in select regions.
Detailed information about the client cannot be disclosed under the provisions of the NDA.
Challenge
The primary challenge for our team was to design a robust system capable of handling the fluctuating inventory of farm produce and ensure its smooth delivery process.
We also needed to create an API for customers’ sites, allowing them to order without knowing the exact contents of their boxes, maintaining the element of surprise that is central to the service’s appeal.
Customer had one strict requirement for technical implementation - the application must be developed using serverless technologies only.
Solution
Understanding the client’s specific requirement for a serverless technology approach, we committed to building an efficient solution utilizing the wide array of AWS (Amazon Web Services).
In this case, the AWS Serverless Application Model (SAM), an open-source framework for building serverless applications, became instrumental.
We relied on AWS SAM to manage the deployment and orchestration of our serverless components. The advantage of using SAM is its ability to allow us to define complex functions and APIs in a straightforward template.
In developing the application, we strategically utilized various AWS services. AWS Cognito, a powerful identity service, helped manage user authentication and user pool management, establishing a robust security framework for our application. We also utilized AWS S3 for storing application data, ensuring high availability and scalability.
To manage our relational databases, AWS RDS was employed while AuroraDB in conjunction with SQLAlchemy handled intricate database operations. For managing database schema migrations, we turned to Alembic. Redis, a fast in-memory data store, was used for implementing cache and facilitating message broker functionalities.
As for our web serving and WSGI HTTP serving needs, we chose Nginx and Gunicorn respectively. These solutions provided efficient handling of HTTP requests and seamless communication between the web server and the application.
For architectural clarity and efficient handling of different user categories, we divided the application into two primary components - an admin section and a customer section. Each of these sections included three fundamental services: a registration service for managing user accounts, an item service to handle the boxes of produce, and a pack-house service to manage the logistics of packing and delivery.
Results
The results of our solution were exceptional. The project achieved scalability, efficiency, and reliability while meeting the clients technical requirements. The use of AWS serverless technologies and the strategic selection of various AWS services resulted in a high-performing and future-ready solution. The client now enjoys a scalable, efficient, and reliable food delivery service that can effortlessly accommodate future growth and evolving business needs.
200K
clients per year
140K
new subscritions per year
Team
5
Back-end engineers
2
Fullstack engineers
1
Teach lead
Technology stack
backend
Dev-ops