diff --git a/README.md b/README.md
index ffe381aa2c3853440cfe20b61f02329d8ce1b7d9..2331fdce96e912fac61769cdb02c30ed0ba3b1e7 100644
--- a/README.md
+++ b/README.md
@@ -59,14 +59,14 @@ You can install Postman via this website: https://www.postman.com/downloads/
     -   Open another new terminal, edit `ROCKET_PORT` in `.env` to `8003`, then execute `cargo run`.
 
 ## Mandatory Checklists (Subscriber)
--   [ ] Clone https://gitlab.com/ichlaffterlalu/bambangshop-receiver to a new repository.
+-   [✓] Clone https://gitlab.com/ichlaffterlalu/bambangshop-receiver to a new repository.
 -   **STAGE 1: Implement models and repositories**
-    -   [ ] Commit: `Create Notification model struct.`
-    -   [ ] Commit: `Create SubscriberRequest model struct.`
-    -   [ ] Commit: `Create Notification database and Notification repository struct skeleton.`
-    -   [ ] Commit: `Implement add function in Notification repository.`
-    -   [ ] Commit: `Implement list_all_as_string function in Notification repository.`
-    -   [ ] Write answers of your learning module's "Reflection Subscriber-1" questions in this README.
+    -   [✓] Commit: `Create Notification model struct.`
+    -   [✓] Commit: `Create SubscriberRequest model struct.`
+    -   [✓] Commit: `Create Notification database and Notification repository struct skeleton.`
+    -   [✓] Commit: `Implement add function in Notification repository.`
+    -   [✓] Commit: `Implement list_all_as_string function in Notification repository.`
+    -   [✓] Write answers of your learning module's "Reflection Subscriber-1" questions in this README.
 -   **STAGE 3: Implement services and controllers**
     -   [ ] Commit: `Create Notification service struct skeleton.`
     -   [ ] Commit: `Implement subscribe function in Notification service.`
@@ -85,6 +85,13 @@ This is the place for you to write reflections:
 ### Mandatory (Subscriber) Reflections
 
 #### Reflection Subscriber-1
+1. In this tutorial, we used RwLock<> to synchronise the use of Vec of Notifications. Explain why it is necessary for this case, and explain why we do not use Mutex<> instead?
+
+    Penggunaan RwLock<> diperlukan dalam kasus ini karena memungkinkan banyak thread untuk membaca data secara bersamaan ketika tidak ada operasi penulisan yang terjadi. Hal ini sangat berguna ketika sebagian besar operasi hanya melakukan pembacaan, seperti fungsi list_all_as_string, sehingga meningkatkan efisiensi dan performa. Di sisi lain, Mutex<> hanya mengizinkan satu thread untuk mengakses data, baik untuk membaca maupun menulis, yang dapat menyebabkan bottleneck ketika banyak thread mencoba membaca data secara simultan. Dengan menggunakan RwLock<>, kita dapat mengoptimalkan konkurensi pada operasi baca tanpa mengorbankan keamanan data saat penulisan.
+<br><br>
+2. In this tutorial, we used lazy_static external library to define Vec and DashMap as a “static” variable. Compared to Java where we can mutate the content of a static variable via a static function, why did not Rust allow us to do so?
+
+    Rust didesain dengan fokus pada keamanan memori dan thread safety tanpa bergantung pada garbage collector seperti di Java. Di Java, static variable bisa dimutasi lewat static function meskipun tanpa perlindungan bawaan yang kuat, sehingga rawan terjadi race condition ketika diakses oleh banyak thread secara bersamaan. Sebaliknya, Rust secara default mengharuskan variabel static bersifat immutable untuk menghindari potensi inkonsistensi data di lingkungan multi-thread. Untuk mengakomodasi kebutuhan mutasi, Rust menyediakan mekanisme melalui library seperti lazy_static, yang menginisialisasi variabel secara lazy sehingga berperilaku seperti Singleton, dan memastikan bahwa setiap mutasi harus melalui wrapper seperti RwLock<> atau Mutex<>. Pendekatan ini memastikan bahwa setiap perubahan data dikontrol secara eksplisit dengan mekanisme sinkronisasi, sehingga menjamin thread safety dan mencegah race condition.
 
 #### Reflection Subscriber-2
 =======