Bird
Raised Fist0
Microservicessystem_design~20 mins

Popular gateways (Kong, AWS API Gateway, Nginx) in Microservices - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Gateway Guru
Get all challenges correct to earn this badge!
Test your skills under time pressure!
service_behavior
intermediate
2:00remaining
How does AWS API Gateway handle throttling by default?

AWS API Gateway limits the number of requests a client can make. What is the default behavior when the limit is exceeded?

AIt queues the requests until the limit resets, then processes them.
BIt silently drops the requests without any response.
CIt returns a 429 Too Many Requests error immediately.
DIt automatically scales the backend to handle the extra load.
Attempts:
2 left
💡 Hint

Think about how APIs usually inform clients about rate limits.

Architecture
intermediate
2:00remaining
Which gateway is best suited for on-premises microservices with high customization?

You have microservices running on your own servers and need a gateway that supports plugins and custom logic. Which gateway fits best?

AKong Gateway
BAWS API Gateway
CCloudflare Gateway
DAzure API Management
Attempts:
2 left
💡 Hint

Consider which gateway is open-source and supports plugins.

Configuration
advanced
2:30remaining
What Nginx configuration snippet correctly enables reverse proxy to a backend service on port 8080?

Choose the correct Nginx config to forward incoming requests to a backend service running on localhost port 8080.

Microservices
server {
    listen 80;
    location / {
        # Your config here
    }
}
Aproxy_forward http://localhost:8080/;
Bproxy_pass https://localhost:8080/;
Cproxy_redirect http://localhost:8080/;
Dproxy_pass http://localhost:8080/;
Attempts:
2 left
💡 Hint

Look for the directive that forwards requests to another server.

security
advanced
2:30remaining
Which feature does Kong Gateway provide to secure APIs with minimal configuration?

To protect your APIs from unauthorized access, which Kong feature can you enable quickly without coding?

ARate Limiting plugin
BOAuth 2.0 plugin
CLoad Balancer plugin
DCaching plugin
Attempts:
2 left
💡 Hint

Think about standard authorization protocols supported by API gateways.

Best Practice
expert
3:00remaining
What is the recommended approach to deploy AWS API Gateway for a multi-region microservices architecture?

You want low latency and high availability for your microservices across multiple AWS regions. How should you deploy AWS API Gateway?

ADeploy API Gateway in each region and use Route 53 latency-based routing.
BDeploy a single API Gateway in one region and route all traffic there.
CDeploy API Gateway only in the region with the most users and use CloudFront for others.
DUse a third-party gateway to handle multi-region routing and keep API Gateway in one region.
Attempts:
2 left
💡 Hint

Consider AWS services that help route users to the nearest region.

Practice

(1/5)
1. Which of the following is a primary role of API gateways like Kong, AWS API Gateway, or Nginx in microservices?
easy
A. Control and protect communication between services
B. Store large amounts of data
C. Run backend business logic
D. Replace databases in microservices

Solution

  1. Step 1: Understand the role of API gateways

    API gateways act as a control point for requests between clients and microservices, managing traffic and security.
  2. Step 2: Compare options with gateway functions

    Storing data, running business logic, or replacing databases are not typical gateway roles.
  3. Final Answer:

    Control and protect communication between services -> Option A
  4. Quick Check:

    Gateway role = Control communication [OK]
Hint: Gateways manage traffic and security, not data storage [OK]
Common Mistakes:
  • Confusing gateways with databases
  • Thinking gateways run business logic
  • Assuming gateways store data
2. Which syntax correctly defines a route in Kong's configuration to forward requests to a service?
easy
A. routes:\n - name example-route\n path: '/example'\n service: example-service
B. routes:\n - name: example-route\n paths: ['/example']\n service: example-service
C. routes:\n - name: example-route\n paths: '/example'\n service: example-service
D. routes:\n - example-route:\n paths: ['/example']\n service: example-service

Solution

  1. Step 1: Review Kong route syntax

    Kong routes use a list with keys: name, paths (as a list), and service.
  2. Step 2: Identify correct YAML structure

    routes:\n - name: example-route\n paths: ['/example']\n service: example-service correctly uses a list with dash, keys with colons, and paths as a list.
  3. Final Answer:

    routes:\n - name: example-route\n paths: ['/example']\n service: example-service -> Option B
  4. Quick Check:

    Kong route syntax = routes:\n - name: example-route\n paths: ['/example']\n service: example-service [OK]
Hint: YAML lists need dashes and keys with colons [OK]
Common Mistakes:
  • Missing colon after keys
  • Using string instead of list for paths
  • Incorrect indentation or dash placement
3. Given this Nginx configuration snippet, what happens when a client requests /api/users?
location /api/ {
  proxy_pass http://backend-service/;
}
medium
A. The request is forwarded to http://backend-service/users
B. The request returns a 404 error
C. The request is blocked by Nginx
D. The request is forwarded to http://backend-service/api/users

Solution

  1. Step 1: Understand Nginx proxy_pass behavior with trailing slash

    When proxy_pass URL ends with a slash, Nginx replaces the matching location prefix with the proxy URL path.
  2. Step 2: Apply to given example

    Location prefix is /api/, proxy_pass is http://backend-service/, so /api/ is replaced by /, forwarding /users to backend-service.
  3. Final Answer:

    The request is forwarded to http://backend-service/users -> Option A
  4. Quick Check:

    Trailing slash in proxy_pass removes location prefix [OK]
Hint: Trailing slash in proxy_pass removes location prefix [OK]
Common Mistakes:
  • Assuming full path is appended
  • Confusing proxy_pass with or without trailing slash
  • Thinking request is blocked or 404
4. You configured AWS API Gateway with a resource path /items and a GET method, but requests to /items return 403 Forbidden. What is the most likely cause?
medium
A. The backend service URL is incorrect
B. The API Gateway does not support GET methods
C. The GET method is not deployed or enabled in the stage
D. The client IP is blocked by AWS firewall

Solution

  1. Step 1: Check AWS API Gateway method deployment

    Methods must be deployed and enabled in the stage to accept requests.
  2. Step 2: Understand 403 Forbidden meaning in API Gateway

    403 often means method exists but is not authorized or deployed, not backend URL or IP block.
  3. Final Answer:

    The GET method is not deployed or enabled in the stage -> Option C
  4. Quick Check:

    403 = method not deployed/enabled [OK]
Hint: Deploy methods in stage to avoid 403 errors [OK]
Common Mistakes:
  • Assuming backend URL causes 403
  • Thinking API Gateway disallows GET
  • Blaming client IP blocking without evidence
5. You want to use Kong to route requests to two microservices: serviceA at /serviceA and serviceB at /serviceB. Which configuration approach ensures correct routing and avoids path conflicts?
hard
A. Create two routes with the same path ['/service'] for both services
B. Create one route with path ['/'] forwarding to both services
C. Use a single route with no path and rely on backend to differentiate
D. Create two routes with paths ['/serviceA'] and ['/serviceB'], each linked to their respective services

Solution

  1. Step 1: Understand routing by path in Kong

    Kong routes requests based on path prefixes to the correct service.
  2. Step 2: Avoid path conflicts by using distinct paths

    Separate paths like '/serviceA' and '/serviceB' ensure requests go to the right service without overlap.
  3. Final Answer:

    Create two routes with paths ['/serviceA'] and ['/serviceB'], each linked to their respective services -> Option D
  4. Quick Check:

    Distinct paths = correct routing [OK]
Hint: Use unique paths per service to avoid conflicts [OK]
Common Mistakes:
  • Using same path for multiple services
  • Relying on backend to route without gateway paths
  • Using root path for all services