{"id":24533,"date":"2026-10-13T11:23:28","date_gmt":"2026-10-13T11:23:28","guid":{"rendered":"https:\/\/engineerbabu.com\/blog\/?p=24533"},"modified":"2026-10-13T11:23:28","modified_gmt":"2026-10-13T11:23:28","slug":"scaling-an-app-to-1-million-users","status":"publish","type":"post","link":"https:\/\/engineerbabu.com\/blog\/scaling-an-app-to-1-million-users\/","title":{"rendered":"Scaling an App to 1 Million Users: Infrastructure Checklist and Costs"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Nothing exposes an architecture like good news.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A feature gets picked up, installs spike overnight, and the system that handled 40,000 users folds at 90,000. The database connection pool saturates. Response times climb. The app store reviews turn ugly within hours.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Scaling an app to 1 million users is rarely a single engineering heroic. It is a sequence of predictable failures that you either plan for or get surprised by.<\/span><\/p>\n<h2><b>TL;DR<\/b><\/h2>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Scaling an app to 1 million users breaks in a fixed order: database first, then caching, then background jobs, then cost control.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Expect roughly $1,500 to $2,500 a month in cloud spend at 10K users and $10,000 to $100,000 at a million, depending on how data-heavy the workload is.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Nearly a third of cloud spend is wasted at scale, so cost discipline is an architecture decision, not a finance one.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">EngineerBabu designs for the next order of magnitude rather than the current one, so the rewrite never has to happen under load.<\/span><\/li>\n<\/ul>\n<h2><b>The short answer<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Scaling an app to 1 million users means removing single points of saturation one layer at a time. You stop relying on one database, one server, one synchronous request path, and one person who knows how deploys work.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Most teams do not need microservices to get there. They need read replicas, a cache layer, a job queue, autoscaling, and real observability. That stack handles a million users comfortably when it is built deliberately.<\/span><\/p>\n<h2><b>What breaks, and in what order<\/b><\/h2>\n<ul>\n<li aria-level=\"1\">\n<h3><b>10,000 users: the database notices first<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Your single Postgres or MySQL instance starts showing slow queries on endpoints nobody optimized. Missing indexes surface. The N+1 query in your feed endpoint stops being theoretical.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Fix it with query profiling, indexes, and connection pooling through PgBouncer or RDS Proxy. This is cheap work with a large payoff.<\/span><\/p>\n<ul>\n<li aria-level=\"1\">\n<h3><b>100,000 users: reads swamp writes<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Read traffic typically outnumbers writes by ten to one or more. One primary database cannot serve both well.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Add read replicas, route reporting and feed queries to them, and introduce Redis for session data and hot objects. Cache hit rate becomes a metric you watch daily.<\/span><\/p>\n<ul>\n<li aria-level=\"1\">\n<h3><b>500,000 users: synchronous work becomes the bottleneck<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Emails, thumbnails, exports, and webhook calls all sitting inside the request cycle will eventually blow your latency budget. Move them to a queue.<\/span><\/p>\n<ul>\n<li aria-level=\"1\">\n<h3><b>1,000,000 users: cost and coordination become the problem<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">The system works. The bill and the deploy process are now the constraint. This is where<\/span><a href=\"https:\/\/engineerbabu.com\/blog\/role-of-cloud-computing-in-app-scalability\/\"> <span style=\"font-weight: 400;\">cloud computing in app scalability<\/span><\/a><span style=\"font-weight: 400;\"> stops being an architecture topic and becomes a margin topic.<\/span><\/p>\n<h2><b>The infrastructure checklist<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Treat this as a readiness audit. Anything unchecked is a known failure waiting for traffic.<\/span><\/p>\n<h3><b>Compute and application layer<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Stateless application servers, with no session data stored on disk<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Autoscaling tied to request latency or queue depth, not CPU alone<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">At least two availability zones behind a load balancer<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Graceful shutdown handling so deploys do not drop in-flight requests<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Blue-green or rolling deploys with an automated rollback path<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">A monolith scales further than most teams expect. Before splitting services, read the tradeoffs in<\/span><a href=\"https:\/\/engineerbabu.com\/blog\/monolithic-vs-microservices-architecture-for-fintech-apps\/\"> <span style=\"font-weight: 400;\">monolithic vs microservices architecture<\/span><\/a><span style=\"font-weight: 400;\">, because premature decomposition adds operational cost without adding capacity.<\/span><\/p>\n<h3><b>Database layer<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Connection pooling in front of every database<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">One or more read replicas with explicit read and write routing<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Slow query logging enabled and reviewed weekly<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Indexes verified against actual production query patterns<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Automated backups with a restore drill you have genuinely performed<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">A partitioning or sharding plan written down before you need it<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">The restore drill matters more than the backup. Teams scaling an app to 1 million users routinely discover their backups are unusable during the one hour it counts.<\/span><\/p>\n<h3><b>Caching and content delivery<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Redis or Memcached for sessions, hot keys, and rate limiting<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">CDN in front of all static assets and media<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cache invalidation strategy defined per object type<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Explicit TTLs rather than inherited defaults<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Protection against cache stampedes on popular keys<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Caching is where cost per user drops hardest. Every cached response is a database query you never pay for.<\/span><\/p>\n<h3><b>Async processing<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">A managed queue such as SQS, RabbitMQ, or Kafka<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dead letter queues with alerting on growth<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Idempotent job handlers that tolerate retries<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Worker pools scaled separately from web servers<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Rate limiting on all outbound third-party calls<\/span><\/li>\n<\/ul>\n<h3><b>Observability<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Centralized structured logging<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Distributed tracing across service boundaries<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Error tracking wired to on-call alerts<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dashboards for p50, p95, and p99 latency<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Synthetic uptime checks on critical user journeys<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Pick a small, well-integrated stack. The comparison in<\/span><a href=\"https:\/\/engineerbabu.com\/blog\/top-10-devops-monitoring-tools\/\"> <span style=\"font-weight: 400;\">DevOps monitoring tools<\/span><\/a><span style=\"font-weight: 400;\"> is a reasonable starting point, and<\/span><a href=\"https:\/\/engineerbabu.com\/services\/performance-testing\"> <span style=\"font-weight: 400;\">performance testing<\/span><\/a><span style=\"font-weight: 400;\"> before each major release tells you where the next ceiling sits.<\/span><\/p>\n<h3><b>Security and resilience<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">WAF and DDoS protection at the edge<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Secrets in a managed vault, never in environment files in git<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Rate limiting per user and per IP on authentication endpoints<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Encryption in transit and at rest across all data stores<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Documented incident response with named owners<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Run everything above against a<\/span><a href=\"https:\/\/engineerbabu.com\/blog\/web-application-security-checklist\/\"> <span style=\"font-weight: 400;\">web application security checklist<\/span><\/a><span style=\"font-weight: 400;\"> before your traffic makes you a target worth attacking.<\/span><\/p>\n<h2><b>What scaling an app to 1 million users costs<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Cloud spend per user falls sharply as fixed costs spread across a larger base. These ranges reflect current market benchmarks for a typical consumer or SaaS workload.<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Stage<\/b><\/td>\n<td><b>Monthly cloud spend<\/b><\/td>\n<td><b>Cost per user<\/b><\/td>\n<td><b>What the budget buys<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">10,000 MAU<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$1,500 to $2,500<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$0.15 to $0.25<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Redundant app servers, managed DB, basic monitoring<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">100,000 MAU<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$5,000 to $10,000<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$0.05 to $0.10<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Read replicas, Redis, CDN, queue workers<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">1,000,000 MAU<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$10,000 to $100,000<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$0.01 to $0.10<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Multi-AZ, sharding or partitioning, full observability<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">The hundredfold spread at a million users is not noise. A text-heavy productivity app sits near the floor. A video or AI-inference product sits near the ceiling, because egress and GPU time dominate everything else.<\/span><\/p>\n<h3><b>Where the money leaks<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Waste is the default, not the exception. Flexera&#8217;s 2026 State of the Cloud report puts the cloud waste rate at 29% of total spend (<\/span><a href=\"https:\/\/www.cloudzero.com\/blog\/cost-of-cloud-computing\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">source<\/span><\/a><span style=\"font-weight: 400;\">). Almost all of it traces to the same five habits.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Overprovisioned instances.<\/b><span style=\"font-weight: 400;\"> Capacity sized for a launch spike that happened once, eight months ago.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Idle non-production environments.<\/b><span style=\"font-weight: 400;\"> Staging running twenty-four hours a day for a team working eight.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Unmonitored data egress.<\/b><span style=\"font-weight: 400;\"> Cross-region transfer and uncached media quietly become a top-three line item.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>No commitment discounts.<\/b><span style=\"font-weight: 400;\"> Reserved instances and savings plans cut steady-state compute meaningfully, and most teams apply them late.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Logs retained forever.<\/b><span style=\"font-weight: 400;\"> Verbose debug logging at a million users produces storage bills that rival compute.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Fixing these before a migration matters, because<\/span><a href=\"https:\/\/engineerbabu.com\/services\/cloud-migration\"> <span style=\"font-weight: 400;\">cloud migration<\/span><\/a><span style=\"font-weight: 400;\"> carries inefficiency across rather than removing it.<\/span><\/p>\n<h2><b>The team side of scale<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Infrastructure is only half of it. The other half is whether your organization can ship safely at volume.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">At 10,000 users, one engineer who knows the deploy process is survivable. At a million, that person is a single point of failure with a calendar. You need runbooks, on-call rotation, and deploys any engineer can run without supervision.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This is why the<\/span><a href=\"https:\/\/engineerbabu.com\/blog\/the-role-of-devops-engineer-in-your-business\/\"> <span style=\"font-weight: 400;\">role of a DevOps engineer<\/span><\/a><span style=\"font-weight: 400;\"> becomes a hiring priority somewhere around the 100,000 user mark. Automation stops being a nice efficiency gain and starts being the thing that keeps incidents short.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Capacity planning belongs on the same calendar. Review headroom monthly against projected growth, so you are adding capacity ahead of demand rather than during an outage.<\/span><\/p>\n<h2><b>Common mistakes while scaling<\/b><\/h2>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Rewriting instead of optimizing.<\/b><span style=\"font-weight: 400;\"> Most scaling problems at 100,000 users are query problems, not architecture problems. Profile before you rebuild.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Adopting microservices too early.<\/b><span style=\"font-weight: 400;\"> You trade one hard problem for several distributed ones, and your team size has not changed.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Scaling compute to hide database pain.<\/b><span style=\"font-weight: 400;\"> More app servers pointed at one saturated database makes the saturation worse.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Treating cost as a later problem.<\/b><span style=\"font-weight: 400;\"> Architecture decisions set your cost curve. Revisiting them at a million users is far more expensive.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Skipping load tests.<\/b><span style=\"font-weight: 400;\"> You should know your breaking point from a controlled test, not from production traffic on a Saturday night.<\/span><\/li>\n<\/ul>\n<h2><b>Final thoughts<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Scaling an app to 1 million users is an exercise in sequencing. Each layer fails at a roughly predictable traffic band, and each fix is well understood by the time you need it.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The teams that struggle are the ones who built for current traffic and assumed the next order of magnitude would be someone else&#8217;s problem. The teams that succeed design one stage ahead and measure continuously.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you are approaching a growth inflection and want the architecture reviewed before traffic finds the weak point, EngineerBabu&#8217;s<\/span><a href=\"https:\/\/engineerbabu.com\/services\/cloud-engineering\"> <span style=\"font-weight: 400;\">cloud engineering<\/span><\/a><span style=\"font-weight: 400;\"> team does exactly that kind of audit.<\/span><\/p>\n<h2><b>About EngineerBabu<\/b><\/h2>\n<p><a href=\"http:\/\/engineerbabu.com\"><span style=\"font-weight: 400;\">EngineerBabu<\/span><\/a><span style=\"font-weight: 400;\"> is a technology development company building products across fintech, healthtech, and AI, from MVPs to scaled, production-ready platforms.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It holds a CMMI Level 5 rating, has worked with 4 unicorn clients, and has supported 200+ VC-funded products. The company is backed by Vijay Shekhar Sharma.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Founded by Mayank Pratap (Co-founder) \u00b7 mayank@engineerbabu.com<\/span><\/p>\n<h2><b>FAQs<\/b><\/h2>\n<ul>\n<li aria-level=\"1\">\n<h3><b>How much does it cost to run an app with 1 million users?<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Typically $10,000 to $100,000 per month in cloud spend. Text-heavy apps sit near the lower end, while video, media, and AI inference workloads sit near the top.<\/span><\/p>\n<ul>\n<li aria-level=\"1\">\n<h3><b>Do I need microservices to reach 1 million users?<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">No. A well-structured monolith with read replicas, caching, and queue-backed background jobs handles a million users reliably for most product categories.<\/span><\/p>\n<ul>\n<li aria-level=\"1\">\n<h3><b>What usually breaks first when an app scales?<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">The database. Missing indexes, N+1 queries, and connection pool exhaustion appear long before compute capacity becomes the limiting factor.<\/span><\/p>\n<ul>\n<li aria-level=\"1\">\n<h3><b>How far ahead should I plan capacity?<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Design for roughly ten times your current traffic. Planning further wastes money, and planning less means rebuilding under load.<\/span><\/p>\n<ul>\n<li aria-level=\"1\">\n<h3><b>When should I hire a dedicated DevOps engineer?<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Around 100,000 active users, or earlier if deploys are manual and only one person can run them safely.<\/span><\/p>\n<ul>\n<li aria-level=\"1\">\n<h3><b>How do I reduce cloud costs without hurting reliability?<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Right-size instances, shut down idle non-production environments, cache aggressively, shorten log retention, and apply reserved instances to steady-state compute.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nothing exposes an architecture like good news. A feature gets picked up, installs spike overnight, and the system that handled 40,000 users folds at 90,000. The database connection pool saturates. Response times climb. The app store reviews turn ugly within hours. Scaling an app to 1 million users is rarely a single engineering heroic. It [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":24534,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1258],"tags":[],"class_list":["post-24533","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-app-development"],"_links":{"self":[{"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/posts\/24533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/comments?post=24533"}],"version-history":[{"count":1,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/posts\/24533\/revisions"}],"predecessor-version":[{"id":24535,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/posts\/24533\/revisions\/24535"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/media\/24534"}],"wp:attachment":[{"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/media?parent=24533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/categories?post=24533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/tags?post=24533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}