Reko
5 minute read
Reko is an image analysing tool that is powered by Amazon Rekognition. It can detect labels, faces, emotions, texts, and a lot more. However, the current version only supports label detection.
Label detection enable you to generate metadata for your image libraries for search and filtering.
Type: Image Analysis

System Architecture
Serverless & Microservice
Backend was designed based on the microservice architecture following a serverless cloud-native development model. Function as a Service (FaaS) provides a platform ,which allows rapid build, run, test and deployment of an application. The characteristic of ‘separation of concern’ allows future update and maintenance to be performed relatively easily without having to interrupt any other functioning features.
Event-driven & FaaS & Rekognition
For the current version, two lambda functions have been launched for handling image analysis and image query, individually. Both will be triggered by a POST request from the frontend.
In order to analyse an uploaded image, AWS Rekognition was integrated with the function using API call. The results as well as the uploaded image will then be stored in DynamoDB and S3, respectively.
To query images based on the labels, user inputs will be matched with the database to search for related images. Any images that share at least one tag with the user input will be returned.
DynamoDB & S3
DynamoDB, a fully managed serverless noSQL database, which is designed to run in high performance was adopted for storing the results and the URL of the image.
S3, which has no minimum charge, and claimed to have unlimited storage was deemed to be the perfect fit for storing uploaded images.
Deployment
AWS S3 and Cloudfront was used as a combination for the deployment of the fronten-tier.
S3, as the most adopted cloud storage solution, is designed for extremely high durability (11 9s), automatically scales to high request rates and encryption at rest.
While Cloudfront is a Content Delivery Network (CDN) that allows the frontend-tier to be distributed globally so that user based anywhere can access the service quikly and reliably.