Hi @iluwatar! can I work on this issue? Please go ahead @kelumsampath  Hello @iluwatar , I can work on this pattern if there are no takers :-)
 All right, it's yours @shibicr93  This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
 Hi, I would like to help out. Could I work on this issue? Could you review Pull Request https://github.com/iluwatar/java-design-patterns/pull/2734?
I've implemented the gateway pattern based on my own interpretation. By the way, this is my first PR in an open-source project so I may need some advice and know where I can enhance my code. This issue has been automatically marked as stale because it has not had recent activity. The issue will be unassigned if no further activity occurs. Thank you for your contributions.

Gateway pattern
https://stackoverflow.com/questions/4422211/what-is-the-difference-between-facade-and-gateway-design-patterns
gateway/README.md pom.xml
gateway/README.md pom.xml
diff --git a/gateway/README.md b/gateway/README.md
index f1152ec6cfb4..9307b5d1d0f9 100644
--- a/gateway/README.md
+++ b/gateway/README.md
@@ -3,7 +3,6 @@ title: Gateway
 category: Structural
 language: en
 tag:
-- Gang of Four
 - Decoupling
 
 ---
@@ -38,7 +37,7 @@ The main class in our example is the `ExternalService` that contains items.
 class ExternalServiceA implements Gateway {
     @Override
     public void execute() throws Exception {
-        System.out.println("Executing Service A");
+        LOGGER.info("Executing Service A");
         // Simulate a time-consuming task
         Thread.sleep(1000);
     }
@@ -50,7 +49,7 @@ class ExternalServiceA implements Gateway {
 class ExternalServiceB implements Gateway {
     @Override
     public void execute() throws Exception {
-        System.out.println("Executing Service B");
+        LOGGER.info("Executing Service B");
         // Simulate a time-consuming task
         Thread.sleep(1000);
     }
@@ -62,7 +61,7 @@ class ExternalServiceB implements Gateway {
 class ExternalServiceC implements Gateway {
     @Override
     public void execute() throws Exception {
-        System.out.println("Executing Service C");
+        LOGGER.info("Executing Service C");
         // Simulate a time-consuming task
         Thread.sleep(1000);
     }
@@ -100,7 +99,7 @@ public class App {
             serviceB.execute();
             serviceC.execute();
         } catch (ThreadDeath e) {
-            System.out.println("Interrupted!" + e);
+            LOGGER.info("Interrupted!" + e);
             throw e;
         }
     }
diff --git a/pom.xml b/pom.xml
index 8af7ff7ae8a2..afa454245f25 100644
--- a/pom.xml
+++ b/pom.xml
@@ -212,6 +212,7 @@
     <module>health-check</module>
     <module>notification</module>
     <module>single-table-inheritance</module>
+    <module>gateway</module>
   </modules>
   <repositories>
     <repository>
