diff --git a/README.md b/README.md
index 7e0fc90a6f1204f027d6bd86f449e2de09b46e7c..cf39d3cb5e0ea5e8e1ccd614c388d25a4d1ed073 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.
+-   [x] 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.
+    -   [x] Commit: `Create Notification model struct.`
+    -   [x] Commit: `Create SubscriberRequest model struct.`
+    -   [x] Commit: `Create Notification database and Notification repository struct skeleton.`
+    -   [x] Commit: `Implement add function in Notification repository.`
+    -   [x] Commit: `Implement list_all_as_string function in Notification repository.`
+    -   [x] 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,5 +85,17 @@ This is the place for you to write reflections:
 ### Mandatory (Subscriber) Reflections
 
 #### Reflection Subscriber-1
+1. **Why is `RwLock<>` necessary, and why not use `Mutex<>` instead?**
+
+    `RwLock<>` is used because it allows multiple readers to access the data simultaneously while ensuring that only one writer can modify the data at a time. This is particularly useful in scenarios where read operations are more frequent than write operations, as it improves performance by reducing contention.
+
+    On the other hand, `Mutex<>` provides exclusive access to the data, meaning that even read operations would block each other. This would lead to unnecessary contention and reduced performance in a read-heavy scenario like this one. Hence, `RwLock<>` is a better choice for this use case.
+
+2. **Why does Rust not allow mutating the content of a static variable directly?**
+
+    In Rust, static variables are immutable by default, and even when declared as mutable, they require synchronization mechanisms like `RwLock<>` or `Mutex<>` to ensure thread safety. This design is based on Rust's emphasis on safety and preventing data races in concurrent programming.
+
+    Unlike Java, where static variables can be mutated without any inherent thread-safety guarantees, Rust enforces strict ownership and borrowing rules. This ensure that mutable access to shared data is always synchronized, preventing undefined behavior and ensuring memory safety. Rust makes it clear when and how shared data is being accessed or modified, leading to safer and more predictable code.
+    
 
 #### Reflection Subscriber-2