Tinder
Func req
Store profiles (with images)
Recommend matches
Note when you find match
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