{"id":82867,"date":"2026-09-09T13:06:03","date_gmt":"2026-09-09T07:36:03","guid":{"rendered":"https:\/\/www.tothenew.com\/blog\/?p=82867"},"modified":"2026-09-15T10:33:42","modified_gmt":"2026-09-15T05:03:42","slug":"kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/","title":{"rendered":"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>As applications move from monoliths to microservices, every new service tends to expose its own API. That sounds fine at first\u2014until each service also has to handle its own authentication, rate limiting, logging, and routing. The result is duplicated logic scattered across every service, and clients that need to know about every backend individually.<\/p>\n<p>In one of our MSP infrastructure projects, we set up <strong>Kong<\/strong> as a centralized API Gateway in front of a set of backend microservices, using <strong>Konga<\/strong> as the visual admin layer and a <strong>Flask<\/strong> application standing in for a real backend service. The objective was to give every client request a single, secure entry point instead of scattering authentication, rate limiting, and logging across services.<\/p>\n<p>In this blog, we will cover:<\/p>\n<ul>\n<li>What an API Gateway is and why it is needed<\/li>\n<li>How an API Gateway differs from a load balancer<\/li>\n<li>The Flask\u2013Kong\u2013Konga architecture<\/li>\n<li>Implementation steps<\/li>\n<li>Rate limiting and authentication plugins<\/li>\n<li>Best practices for running Kong in production<\/li>\n<\/ul>\n<h2>What Is an API Gateway?<\/h2>\n<p>An API Gateway is the entry point that acts as a bridge between clients and backend services. In a microservices architecture, it is the single door through which all client requests pass, giving teams consistent access control, security, and performance across many independent APIs.<\/p>\n<p><strong>What it does:<\/strong><\/p>\n<ul>\n<li>Routes and controls incoming API requests<\/li>\n<li>Manages authentication, rate limiting, and caching<\/li>\n<li>Provides centralized logging and monitoring<\/li>\n<li>Enables versioning, transformation, and security policies<\/li>\n<li>Improves performance and simplifies client interaction<\/li>\n<\/ul>\n<h2>Why Do We Need an API Gateway?<\/h2>\n<p>Without a gateway, clients talk to many APIs directly \u2014 a complex, repetitive setup where every service reinvents authentication, logging, and error handling. With a gateway, clients talk to one endpoint, which fans out to multiple services behind the scenes: simple, secure, and centrally managed.<\/p>\n<p><strong>Key reasons:<\/strong><\/p>\n<ul>\n<li><strong>Security<\/strong> \u2013 centralized authentication, authorization, and rate limiting<\/li>\n<li><strong>Simplified routing<\/strong> \u2013 one endpoint for all backend services<\/li>\n<li><strong>Monitoring &amp; logging<\/strong> \u2013 unified tracking of API requests<\/li>\n<li><strong>Consistency<\/strong> \u2013 common policies across services, including headers, versions, and error handling<\/li>\n<li><strong>Performance<\/strong> \u2013 offloads repeated logic from microservices<\/li>\n<li><strong>Scalability<\/strong> \u2013 easy to add or remove services behind the gateway<\/li>\n<\/ul>\n<h2>Load Balancer vs. API Gateway<\/h2>\n<p>It&#8217;s tempting to assume a load balancer already does this job. It doesn&#8217;t \u2014 a load balancer distributes traffic, but it doesn&#8217;t inspect, secure, or transform it. An API Gateway like Kong can go further by applying policies to incoming API requests.<\/p>\n<h3>Example 1 \u2014 Rate Limiting &amp; Authentication<\/h3>\n<table style=\"width: 100%; border-collapse: collapse;\">\n<tbody>\n<tr>\n<th style=\"width: 22%; padding: 12px; text-align: left;\">Feature<\/th>\n<th style=\"width: 39%; padding: 12px; text-align: left;\">Load Balancer<\/th>\n<th style=\"width: 39%; padding: 12px; text-align: left;\">API Gateway<\/th>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; vertical-align: top;\"><strong>Rate Limiting<\/strong><\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Requests reach the backend and can cause overload.<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Requests can be limited, for example, to 3 req\/sec. Excess requests can be blocked with <code>429 Too Many Requests<\/code>.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; vertical-align: top;\"><strong>Authentication<\/strong><\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Invalid tokens are forwarded and the backend must reject them.<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Invalid tokens can be blocked at the gateway with <code>401 Unauthorized<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Example 2 \u2014 Custom Headers<\/h3>\n<p>A gateway can inspect and modify request headers. For example:<\/p>\n<pre style=\"background: #1f1f1f; color: #f5f5f5; padding: 20px; border-radius: 12px;\"><code>User-Agent: SmartTVApp\/1.0<\/code><\/pre>\n<p>Kong can process this request and add headers such as:<\/p>\n<pre style=\"background: #1f1f1f; color: #f5f5f5; padding: 20px; border-radius: 12px;\"><code>X-Device-Type: SmartTV\r\nX-Region: IN<\/code><\/pre>\n<h2>Solution Architecture<\/h2>\n<p>In this setup, direct client-to-service calls were replaced with a single Kong-fronted entry point. The demo wires together three pieces: a Flask backend exposing several routes, Kong as the gateway that proxies and controls traffic, and Konga as a web UI for configuring Kong without hand-writing API calls.<\/p>\n<p><strong>Components:<\/strong><\/p>\n<table style=\"width: 100%; border-collapse: collapse;\">\n<tbody>\n<tr>\n<th style=\"width: 25%; padding: 12px; text-align: left;\">Component<\/th>\n<th style=\"width: 30%; padding: 12px; text-align: left;\">Role<\/th>\n<th style=\"width: 45%; padding: 12px; text-align: left;\">Key Capability<\/th>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; vertical-align: top;\">Flask App<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Backend microservice<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Serves application routes<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; vertical-align: top;\">Kong Gateway<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">API Gateway \/ reverse proxy<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Request routing, plugins, and security<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; vertical-align: top;\">Konga<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Admin UI for Kong<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Visual configuration of services, routes, and plugins<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; vertical-align: top;\">Docker on AWS EC2<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Deployment layer<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Containerized and portable deployment<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>This means clients only ever talk to Kong&#8217;s proxy port \u2014 routing to the right backend happens behind the scenes.<\/p>\n<p><strong>Visual:<\/strong> Insert the Flask\u2013Kong\u2013Konga architecture diagram here.<\/p>\n<h2>Prerequisites<\/h2>\n<p>Before wiring Flask, Kong, and Konga together, ensure the following are available:<\/p>\n<ul>\n<li>A running Flask application exposing the target routes<\/li>\n<li>Docker and Docker Compose installed<\/li>\n<li>Kong Gateway container with its datastore, such as Postgres<\/li>\n<li>Konga container, pointed at the Kong Admin API<\/li>\n<li>An AWS EC2 instance to run the containers<\/li>\n<li>Network access between Konga, Kong, and the Flask backend<\/li>\n<\/ul>\n<p><strong>Flask backend endpoints used in the demo:<\/strong><\/p>\n<ul>\n<li><code>\/home<\/code> \u2192 Home page<\/li>\n<li><code>\/web<\/code> \u2192 Web section<\/li>\n<li><code>\/support<\/code> \u2192 Support page<\/li>\n<li><code>\/about<\/code> \u2192 About us<\/li>\n<li><code>\/offers<\/code> \u2192 Promotional offers<\/li>\n<\/ul>\n<h2>Step 1 \u2013 Log In to Konga and Connect Kong<\/h2>\n<p>Open the Konga UI and point it at the Kong Admin API so it can manage services, routes, and plugins. On first launch, Konga prompts you to create an administrator account.<\/p>\n<pre style=\"background: #1f1f1f; color: #f5f5f5; padding: 20px; border-radius: 12px;\"><code>Konga URL: http:\/\/&lt;host&gt;:1337\r\nKong Admin API: http:\/\/&lt;host&gt;:8001<\/code><\/pre>\n<p>Check that Kong is reachable before proceeding:<\/p>\n<pre style=\"background: #1f1f1f; color: #f5f5f5; padding: 20px; border-radius: 12px;\"><code>curl -i http:\/\/&lt;host&gt;:8001\/status<\/code><\/pre>\n<h2>Step 2 \u2013 Create a Service<\/h2>\n<p>A Service in Kong represents an upstream backend \u2014 in this case, the Flask application. This is created from the Konga UI through <strong>Services \u2192 Add Service<\/strong>.<\/p>\n<pre style=\"background: #1f1f1f; color: #f5f5f5; padding: 20px; border-radius: 12px;\"><code>name: flask-service\r\nurl: http:\/\/flask-app:5000<\/code><\/pre>\n<h2>Step 3 \u2013 Add Routes<\/h2>\n<p>Routes map incoming paths on the gateway to the service created above. Each Flask endpoint gets a corresponding route on Kong.<\/p>\n<pre style=\"background: #1f1f1f; color: #f5f5f5; padding: 20px; border-radius: 12px;\"><code>route: \/home     \u2192 flask-service\r\nroute: \/web      \u2192 flask-service\r\nroute: \/support  \u2192 flask-service\r\nroute: \/about    \u2192 flask-service\r\nroute: \/offers   \u2192 flask-service<\/code><\/pre>\n<h2>Step 4 \u2013 Proxy Traffic Through Kong<\/h2>\n<p>Requests now go through Kong&#8217;s proxy port instead of hitting Flask directly:<\/p>\n<pre style=\"background: #1f1f1f; color: #f5f5f5; padding: 20px; border-radius: 12px;\"><code>curl http:\/\/&lt;host&gt;:8000\/home\r\ncurl http:\/\/&lt;host&gt;:8000\/offers<\/code><\/pre>\n<p>All traffic to the Flask app now flows through a single, controllable entry point.<\/p>\n<h2>Plugin Enablement \u2014 Rate Limiting &amp; Authentication<\/h2>\n<p>Everything below is configured through the Konga UI, backed by Kong&#8217;s Admin API \u2014 no custom gateway code required.<\/p>\n<h3>Rate Limiting Plugin<\/h3>\n<ul>\n<li>Controls how many requests are allowed in a time window<\/li>\n<li>Can be applied per Service, per client IP, or per custom Header<\/li>\n<li>Example configuration: 3 requests\/sec, 10 requests\/min<\/li>\n<\/ul>\n<pre style=\"background: #1f1f1f; color: #f5f5f5; padding: 20px; border-radius: 12px;\"><code>plugin: rate-limiting\r\nconfig:\r\n  second: 3\r\n  minute: 10\r\n  policy: local<\/code><\/pre>\n<h3>Authentication Plugin (Key Auth)<\/h3>\n<ul>\n<li>Enables key authentication \u2014 clients must send a valid key<\/li>\n<li>Protects sensitive routes and APIs<\/li>\n<li>Applied at the service or route level<\/li>\n<li>Ensures only authorized users reach backend services<\/li>\n<\/ul>\n<pre style=\"background: #1f1f1f; color: #f5f5f5; padding: 20px; border-radius: 12px;\"><code>plugin: key-auth\r\nconfig:\r\n  key_names:\r\n    - apikey<\/code><\/pre>\n<p>With both plugins enabled, an unauthenticated or over-limit request is rejected by Kong before it ever reaches Flask.<\/p>\n<h2>Benefits Achieved<\/h2>\n<p>After centralizing traffic through Kong, a few operational improvements stood out:<\/p>\n<ul>\n<li>Authentication and rate limiting enforced in one place instead of per-service<\/li>\n<li>Invalid tokens and excess requests rejected before reaching the backend<\/li>\n<li>Consistent header handling and request transformation across all routes<\/li>\n<li>One place to monitor and log all API traffic<\/li>\n<li>Easy to add new backend services without duplicating security logic<\/li>\n<li>Fully containerized, reproducible deployment on Docker\/EC2<\/li>\n<\/ul>\n<p>Instead of every microservice reinventing authentication and rate limiting, Kong now enforces it centrally for all of them.<\/p>\n<h2>Best Practices<\/h2>\n<table style=\"width: 100%; border-collapse: collapse;\">\n<tbody>\n<tr>\n<th style=\"width: 35%; padding: 12px; text-align: left;\">Practice<\/th>\n<th style=\"width: 65%; padding: 12px; text-align: left;\">Why It Matters<\/th>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; vertical-align: top;\">Apply rate limiting on every public route<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Prevents abuse and protects backend services from overload.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; vertical-align: top;\">Use Key Auth or JWT\/OAuth2 on sensitive routes<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Blocks unauthorized traffic before it reaches the backend.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; vertical-align: top;\">Centralize logging via Kong plugins<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Provides one place to monitor API traffic.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; vertical-align: top;\">Version routes explicitly, such as <code>\/v1\/<\/code> and <code>\/v2\/<\/code><\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Allows backend services to evolve without breaking existing clients.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; vertical-align: top;\">Containerize Kong, Konga, and backend services<\/td>\n<td style=\"padding: 12px; vertical-align: top;\">Simplifies scaling and keeps environments reproducible.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Conclusion<\/h2>\n<p>An API Gateway turns a sprawl of individually-managed microservices into a single, secure, and observable surface. Kong provides the high-performance routing and plugin ecosystem, Konga makes that configuration approachable through a UI, and Flask stands in for any backend microservice needing protection.<\/p>\n<p>Together, they replace scattered per-service authentication and rate-limiting logic with one centrally managed layer that simplifies API management and provides a consistent way to control traffic across services.<\/p>\n<p>If you&#8217;re running multiple backend services behind ad-hoc authentication and rate-limiting logic, Kong is worth evaluating as a centralized API Gateway. Start with a small set of routes in a non-production environment, validate the plugin behavior, and gradually expand coverage across your services. If you\u2019re already using Kong or are considering an API Gateway, please share your experience or questions in the comments \u2013 I\u2019d love to hear how you\u2019re managing your microservice traffic.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction As applications move from monoliths to microservices, every new service tends to expose its own API. That sounds fine at first\u2014until each service also has to handle its own authentication, rate limiting, logging, and routing. The result is duplicated logic scattered across every service, and clients that need to know about every backend individually. [&hellip;]<\/p>\n","protected":false},"author":2325,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":1,"footnotes":""},"categories":[5877],"tags":[5180,8974,1221,248,1883,6965,8972,8973,3979,8975],"class_list":["post-82867","post","type-post","status-publish","format-standard","hentry","category-msp","tag-apigateway","tag-apimanagement","tag-authentication","tag-aws","tag-docker","tag-flask","tag-kong","tag-konga","tag-microservices","tag-ratelimiting"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Introduction As applications move from monoliths to microservices, every new service tends to expose its own API. That sounds fine at first\u2014until each service also has to handle its own authentication, rate limiting, logging, and routing. The result is duplicated logic scattered across every service, and clients that need to know about every backend individually.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Sankalp Batra\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Introduction As applications move from monoliths to microservices, every new service tends to expose its own API. That sounds fine at first\u2014until each service also has to handle its own authentication, rate limiting, logging, and routing. The result is duplicated logic scattered across every service, and clients that need to know about every backend individually.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Introduction As applications move from monoliths to microservices, every new service tends to expose its own API. That sounds fine at first\u2014until each service also has to handle its own authentication, rate limiting, logging, and routing. The result is duplicated logic scattered across every service, and clients that need to know about every backend individually.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\\\/#article\",\"name\":\"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask | TO THE NEW Blog\",\"headline\":\"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/sankalp-batra\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2026-09-09T13:06:03+05:30\",\"dateModified\":\"2026-09-15T10:33:42+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\\\/#webpage\"},\"articleSection\":\"MSP, APIGATEWAY, APIManagement, authentication, aws, docker, flask, Kong, Konga, microservices, RateLimiting\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/msp\\\/#listItem\",\"name\":\"MSP\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/msp\\\/#listItem\",\"position\":2,\"name\":\"MSP\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/msp\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\\\/#listItem\",\"name\":\"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\\\/#listItem\",\"position\":3,\"name\":\"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/msp\\\/#listItem\",\"name\":\"MSP\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/sankalp-batra\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/sankalp-batra\\\/\",\"name\":\"Sankalp Batra\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\\\/#authorImage\",\"url\":\"https:\\\/\\\/newersworld-sf-static.tothenew.net\\\/prod\\\/profilePicFolder\\\/0461f1c7-74af-40dc-88c0-55a5d1878aae_6074-Sankalp-Batra-PROFILEPICTURE.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Sankalp Batra\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\\\/\",\"name\":\"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask | TO THE NEW Blog\",\"description\":\"Introduction As applications move from monoliths to microservices, every new service tends to expose its own API. That sounds fine at first\\u2014until each service also has to handle its own authentication, rate limiting, logging, and routing. The result is duplicated logic scattered across every service, and clients that need to know about every backend individually.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/sankalp-batra\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/sankalp-batra\\\/#author\"},\"datePublished\":\"2026-09-09T13:06:03+05:30\",\"dateModified\":\"2026-09-15T10:33:42+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask | TO THE NEW Blog","description":"Introduction As applications move from monoliths to microservices, every new service tends to expose its own API. That sounds fine at first\u2014until each service also has to handle its own authentication, rate limiting, logging, and routing. The result is duplicated logic scattered across every service, and clients that need to know about every backend individually.","canonical_url":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/#article","name":"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask | TO THE NEW Blog","headline":"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask","author":{"@id":"https:\/\/www.tothenew.com\/blog\/author\/sankalp-batra\/#author"},"publisher":{"@id":"https:\/\/www.tothenew.com\/blog\/#organization"},"datePublished":"2026-09-09T13:06:03+05:30","dateModified":"2026-09-15T10:33:42+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/#webpage"},"isPartOf":{"@id":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/#webpage"},"articleSection":"MSP, APIGATEWAY, APIManagement, authentication, aws, docker, flask, Kong, Konga, microservices, RateLimiting"},{"@type":"BreadcrumbList","@id":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.tothenew.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/category\/msp\/#listItem","name":"MSP"}},{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/category\/msp\/#listItem","position":2,"name":"MSP","item":"https:\/\/www.tothenew.com\/blog\/category\/msp\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/#listItem","name":"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/#listItem","position":3,"name":"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask","previousItem":{"@type":"ListItem","@id":"https:\/\/www.tothenew.com\/blog\/category\/msp\/#listItem","name":"MSP"}}]},{"@type":"Organization","@id":"https:\/\/www.tothenew.com\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/www.tothenew.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.tothenew.com\/blog\/author\/sankalp-batra\/#author","url":"https:\/\/www.tothenew.com\/blog\/author\/sankalp-batra\/","name":"Sankalp Batra","image":{"@type":"ImageObject","@id":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/#authorImage","url":"https:\/\/newersworld-sf-static.tothenew.net\/prod\/profilePicFolder\/0461f1c7-74af-40dc-88c0-55a5d1878aae_6074-Sankalp-Batra-PROFILEPICTURE.jpeg","width":96,"height":96,"caption":"Sankalp Batra"}},{"@type":"WebPage","@id":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/#webpage","url":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/","name":"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask | TO THE NEW Blog","description":"Introduction As applications move from monoliths to microservices, every new service tends to expose its own API. That sounds fine at first\u2014until each service also has to handle its own authentication, rate limiting, logging, and routing. The result is duplicated logic scattered across every service, and clients that need to know about every backend individually.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.tothenew.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/#breadcrumblist"},"author":{"@id":"https:\/\/www.tothenew.com\/blog\/author\/sankalp-batra\/#author"},"creator":{"@id":"https:\/\/www.tothenew.com\/blog\/author\/sankalp-batra\/#author"},"datePublished":"2026-09-09T13:06:03+05:30","dateModified":"2026-09-15T10:33:42+05:30"},{"@type":"WebSite","@id":"https:\/\/www.tothenew.com\/blog\/#website","url":"https:\/\/www.tothenew.com\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.tothenew.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask | TO THE NEW Blog","og:description":"Introduction As applications move from monoliths to microservices, every new service tends to expose its own API. That sounds fine at first\u2014until each service also has to handle its own authentication, rate limiting, logging, and routing. The result is duplicated logic scattered across every service, and clients that need to know about every backend individually.","og:url":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/","og:image":"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask | TO THE NEW Blog","twitter:description":"Introduction As applications move from monoliths to microservices, every new service tends to expose its own API. That sounds fine at first\u2014until each service also has to handle its own authentication, rate limiting, logging, and routing. The result is duplicated logic scattered across every service, and clients that need to know about every backend individually.","twitter:image":"https:\/\/www.tothenew.com\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"82867","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"created":"2026-09-09 06:38:07","updated":"2026-09-15 05:03:44","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.tothenew.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.tothenew.com\/blog\/category\/msp\/\" title=\"MSP\">MSP<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tKong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.tothenew.com\/blog"},{"label":"MSP","link":"https:\/\/www.tothenew.com\/blog\/category\/msp\/"},{"label":"Kong as an API Gateway: Centralizing Microservice Traffic with Konga and Flask","link":"https:\/\/www.tothenew.com\/blog\/kong-as-an-api-gateway-centralizing-microservice-traffic-with-konga-and-flask\/"}],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/82867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/2325"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=82867"}],"version-history":[{"count":3,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/82867\/revisions"}],"predecessor-version":[{"id":83429,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/82867\/revisions\/83429"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=82867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=82867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=82867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}