Tinder

Func req

  1. Store profiles (with images)

  2. Recommend matches

  3. Note when you find match

  4. Direct messaging

NFR

5 images per profile

active users (and 0.1% of them are matching)

Trade offs

How to store images

Blob in DB

BLOB (Binary Large OBject) is a data type used to store large binary data, such as images, audio files, video files, documents (e.g., PDF, Word), and other types of binary data.

👍Transaction guaranties (but we will not be doing changes to the image )

👍indexes (search) but we will not search by photo

👍action control (but file system will also provide it)

Store on file system

👍cheaper

👍faster

👍we can use CDN on top of it

👍we can store in DB following info (profile ID, image ID, File URL)

Specific technologies

XMPP protocol (7 layer)

  • XMPP protocol for sending messages. Bsed on XML

  • It supports various message types, including text, multimedia, and structured data.

  • Shares online/offline status of user.

  • Can support file transfer, group chat, voice and video calls, IoT communication via extensions.

  • Decentralized protocol.

  • Supports TLS. Works on TCP (somehow WebSocket is onvolved)

  • Users can subscribe to receive updates about the presence status of other users

Last updated