diff --git a/README.md b/README.md
index 95539366256ece0daf5c67dab204fb6c3a283b34..4f9a4e471254f7965e53493f16d640cc89acd6b1 100644
--- a/README.md
+++ b/README.md
@@ -59,25 +59,25 @@ 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.`
-    -   [ ] Commit: `Implement subscribe function in Notification controller.`
-    -   [ ] Commit: `Implement unsubscribe function in Notification service.`
-    -   [ ] Commit: `Implement unsubscribe function in Notification controller.`
-    -   [ ] Commit: `Implement receive_notification function in Notification service.`
-    -   [ ] Commit: `Implement receive function in Notification controller.`
-    -   [ ] Commit: `Implement list_messages function in Notification service.`
-    -   [ ] Commit: `Implement list function in Notification controller.`
-    -   [ ] Write answers of your learning module's "Reflection Subscriber-2" questions in this README.
+    - [ x ] Commit: `Create Notification service struct skeleton.`
+    - [ x ] Commit: `Implement subscribe function in Notification service.`
+    - [ x ] Commit: `Implement subscribe function in Notification controller.`
+    - [ x ] Commit: `Implement unsubscribe function in Notification service.`
+    - [ x ] Commit: `Implement unsubscribe function in Notification controller.`
+    - [ x ] Commit: `Implement receive_notification function in Notification service.`
+    - [ x ] Commit: `Implement receive function in Notification controller.`
+    - [ x ] Commit: `Implement list_messages function in Notification service.`
+    - [ x ] Commit: `Implement list function in Notification controller.`
+    - [ x ] Write answers of your learning module's "Reflection Subscriber-2" questions in this README.
 
 ## Your Reflections
 This is the place for you to write reflections:
@@ -90,3 +90,8 @@ In our design, we used an RwLock to protect the Vec of notifications because thi
 Rust enforces strict safety rules around mutable static data to prevent race conditions and data corruption. Unlike Java, where static variables can be mutated freely via static methods, Rust requires that any global mutable state be managed carefully. By using the lazy_static library, we can initialize static variables like Vec and DashMap in a controlled and thread-safe manner. This approach avoids the risks associated with direct mutation and ensures that our program remains safe even in a concurrent environment, adhering to Rust’s core design principles of memory and thread safety.
 
 #### Reflection Subscriber-2
+Exploring the code beyond the tutorial steps, particularly in src/lib.rs, was a valuable experience. I learned how Rust uses lazy_static to safely initialize global variables and how configuration management can be handled with crates like dotenvy and Figment. This exploration deepened my understanding of how Rust’s strict type and memory safety rules work in practice, and how these rules contribute to a more robust and reliable codebase. Additionally, I learned about custom error handling techniques, which help in creating consistent and clear error responses across the application.
+
+Working with the Observer pattern has made it remarkably straightforward to add new subscribers. The design allows any new instance to simply register with the publisher and immediately start receiving notifications, without requiring modifications to the publisher’s logic. However, if we were to deploy multiple instances of the Main App, the ease of adding subscribers would depend on the architecture. With a centralized management system for subscribers, multiple Main App instances could share a common subscriber list, making integration seamless. If each instance managed its own list independently, additional coordination would be necessary, which could complicate the design.
+
+I also experimented with using Postman for testing and documenting the API. This experience was highly beneficial, as it allowed me to quickly verify that endpoints worked as expected and to share well-organized test collections with my team. Features like automated tests, environment management, and detailed documentation in Postman proved invaluable for both the tutorial and future group projects. These tools not only help catch issues early but also improve collaboration and the overall quality of the software.
\ No newline at end of file