Tugas Pertemuan 13 PPL A
Nama : Christian Kevin Emor
Rancangan Desain Instagram
Link Refrensi : Refrensi Tugas
Instagram adalah platform media sosial yang memungkinkan pengguna untuk berbagi foto dan video, serta mengikuti dan berinteraksi dengan pengguna lain melalui fitur seperti likes, komentar, dan direct messaging. Aplikasi ini juga menawarkan fitur Stories, Reels, dan IGTV untuk konten video yang lebih panjang dan berbagi momen sehari-hari.
Spesifikasi Kebutuhan / Requirements
Fungsional:
- Pendaftaran dan login pengguna
- Unggah dan berbagi foto/video
- Fitur komentar dan like
- Mengikuti dan diikuti oleh pengguna lain
- Pesan langsung (Direct Messaging)
- Pencarian dan eksplorasi konten
- Fitur Stories, Reels, dan IGTV
- Notifikasi aktivitas pengguna
Non-Fungsional:
- Skalabilitas untuk menangani jutaan pengguna
- Ketersediaan tinggi untuk akses 24/7
- Latensi rendah untuk respons cepat
- Keamanan data pengguna dan enkripsi
- Konsistensi kuat untuk pembaruan data secara real-time
Estimasi Kapasitas
Traffic:
- Pengguna aktif harian: 1 miliar
- Pengguna aktif per detik: 11.600 pengguna/detik
- Rata-rata unggahan per menit: 350.000 unggahan/min
- Rata-rata unggahan per detik: 5.833 unggahan/detik
- Puncak unggahan: 700.000 unggahan/menit
Storage:
- Setiap pengguna: 2 MB (profil, pengaturan, dll.)
- Setiap foto/video: 5 MB
- Setiap komentar: 200 bytes
- Total penyimpanan untuk 1 miliar pengguna: 2 PB
- Total unggahan per hari: 500 juta unggahan
- Penyimpanan untuk unggahan per hari: 2,5 PB
- Penyimpanan untuk 1 tahun (365 hari): 912,5 PB (≈913 PB)
High Level Design
Komponen Utama:
- Client-Side Application: Aplikasi mobile dan web untuk interaksi pengguna
- API Gateway: Mengelola permintaan dari aplikasi ke layanan backend
- User Service: Mengelola data pengguna dan autentikasi
- Media Service: Mengelola unggahan dan penyimpanan foto/video
- Feed Service: Mengelola feed pengguna dan algoritma rekomendasi
- Notification Service: Mengirim notifikasi push dan in-app
- Messaging Service: Mengelola pesan langsung antar pengguna
- Analytics Service: Mengumpulkan dan menganalisis data penggunaan
Database Design
Tabel Utama:
Users:
- id (PK)
- username
- password_hash
- profile_picture
- bio
- created_at
Posts:
- id (PK)
- user_id (FK ke Users)
- media_url
- caption
- created_at
Comments:
- id (PK)
- post_id (FK ke Posts)
- user_id (FK ke Users)
- comment_text
- created_at
Likes:
- id (PK)
- post_id (FK ke Posts)
- user_id (FK ke Users)
- created_at
Followers:
- user_id (FK ke Users)
- follower_id (FK ke Users)
- created_at
Messages:
- id (PK)
- sender_id (FK ke Users)
- receiver_id (FK ke Users)
- message_text
- created_at
Notifications:
- id (PK)
- user_id (FK ke Users)
- notification_type
- message
- created_at
Komentar
Posting Komentar