Microservices used in TikTok System Design

Microservices Used in TikTok System Design

10.1 Authentication Services

It authenticates user identities and assigns unique userIDs upon successful verification, enabling personalized experiences within the platform.

10.2 Video Upload Services

The request for uploading videos is directed to Video Upload Services.Leveraging WebSocket connections, this service allows real-time progress tracking during uploads, providing users with immediate feedback on their upload status.

Which Technologies we use for Video Upload in TikTok?

For instance, technologies like Socket.IO facilitate bidirectional communication, ensuring continuous updates on upload progress. This seamless experience ensures users can monitor and engage with their uploads more effectively.

10.3 Primary Storage (Blob Storage):

The original video is then stored in the Primary Storage, which uses blob storage systems to efficiently and securely store uploaded videos. Employing cloud-based solutions such as Amazon S3 or Azure Blob Storage, it ensures scalability and reliability in storing vast amounts of user-generated content.

Example:

Videos are stored as objects in Amazon S3 buckets, ensuring durability and accessibility across the platform. Upon successful upload, notification is sent to the user about the upload.

10.4 Encoder/Transcoder Services:

Encoder Services play a vital role in optimizing videos for seamless streaming. Utilizing tools like FFmpeg, it converts uploaded videos into various formats and bitrates suitable for different devices. These services ensure that videos are transcoded effectively, enabling smooth playback across a range of devices and network conditions.

10.5 Recommendation Services:

At the heart of personalized content delivery lies the Recommendation Services. Powered by machine learning algorithms, these services curate tailored content feeds for users based on their preferences and interactions. These algorithms analyze user behavior and preferences, employing collaborative filtering or content-based recommendation systems to suggest videos that align with user interests.

10.6 Fanout Services:

Fanout Services are responsible for efficiently distributing uploaded videos to users’ feeds, ensuring a personalized experience. Employing a hybrid strategy combining push and on-demand models, TikTok ensures effective content distribution. Technologies like Kafka or RabbitMQ aid in distributing video notifications based on user activity, ensuring timely and relevant content delivery.

10.7 Cache (Redis):

The Cache services play a crucial role in optimizing content delivery by storing personalized feeds, metadata, and trending content. Utilizing Redis as an in-memory data store, it caches frequently accessed data, reducing latency for users accessing personalized feeds and trending videos.

Designing TikTok | System Design

TikTok, the globally acclaimed video-sharing platform, enchants audiences with its short, captivating content. Behind this phenomenon lies a sophisticated system meticulously designed to handle vast user-generated videos, likes, and personalized recommendations. From video uploads to tailored feeds, TikTok’s design weaves together smart technologies and algorithms, ensuring a seamless experience.

Important Topics for Designing System Design

  • What is TikTok?
  • Requirements for TikTok System Design
  • Capacity Estimation of TikTok System Design
  • Use Case Diagram for TikTok System Design
  • Low-Level Design(LLD) for TikTok System Design
  • High-Level Design for TikTok System Design
  • Database Design for TikTok System Design
  • Types of Databases used in TikTok Design
  • API Used for Communicating with the servers in TikTok System Design
  • Microservices used in TikTok System Design
  • Scalability in TikTok System Design

Similar Reads

1. What is TikTok?

TikTok is a social Media Platform that is used to make a variety of short-form videos, from genres like dance, comedy, and education, that have a duration of 15 seconds to one minute. The app, developed by the Chinese company ByteDance, gained widespread popularity for its user-friendly interface and the ability to easily create and share engaging content....

2. Requirements for TikTok System Design

...

3. Capacity Estimation of TikTok System Design

To estimate the scale of the system and to get the idea about the storage requirements, we have to make some assumptions about the data queries and the average size of videos uploaded....

4. Use Case Diagram for TikTok System Design

For the TikTok-like application, there are two distinct user scenarios:...

5. Low-Level Design(LLD) for TikTok System Design

...

6. High Level Design for TikTok System Design

At a high level, the design should handle two main tasks....

7. Database Design for TikTok System Design

Database Design for TikTok System Design...

8. Types of Databases used in TikTok Design

...

9. API Used for Communicating with the servers in TikTok System Design

...

10. Microservices used in TikTok System Design

...

11. Scalability in TikTok System Design

...