Diagram and overview
Note: diagram is subject to change - currently, a rough sketch of the service is presented

The architecture of Yuzu is divided into two primary components: the front-end interfaces and the back-end services. This is a brief overview designed to introduce the more detailed sections that follow.
Frontends
Yuzu features two frontend interfaces: one designed for mobile devices and another for desktop browsers. These front-ends communicate with the back-end infrastructure through a multi-layered approach involving CloudFront (CDN) and a load balancer.
Backend Routing
Initially, incoming requests pass through AWS CloudFront, followed by a load balancer. Although the necessity of an external load balancer is under consideration—I am currently unsure if a load balancer is required here as I only have a single EKS (kubernetes) cluster running—the architecture includes this as a component.
Core Services
Once past the routing layer, requests are directed to one of three back-end services:
User Service: Developed using Node and Vite.js, this service handles user-related data and functionalities. It communicates with an Elasticsearch instance for features like fuzzy search and typeahead, and stores user-specific data in a PostgreSQL database. This service also interfaces with an S3 bucket for storing user profile images.
Post Service: Written in Go, this service is responsible for handling user posts. It also communicates with the same Elasticsearch instance for search functionalities. Post content is stored in a Cassandra database, while images related to the posts are stored in an S3 bucket.
Feed Service: Also developed in Go, this service manages user feeds. The feeds are stored in Redis, sorted by date in a sorted set in ascending order.
Data Storage and Caching
All core services are interconnected with a Redis instance for data caching, further enhancing performance and efficiency.
This overview serves as an introduction to the more intricate details explored in subsequent sections, providing a foundational understanding of Yuzu's architectural design.
Last updated