# razorpay

Published articles for razorpay.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Five Years of Kafka at Razorpay's UPI Switch

DevFeed: [Five Years of Kafka at Razorpay's UPI Switch](<https://devfeed.tech/articles/five-years-of-kafka-at-razorpay-s-upi-switch-24044.md>)

Original publisher: [Read original article](<https://engineering.razorpay.com/tryst-with-kafka-2f5cef766c45?source=rss----6407ad2e59af---4>)

Author: Kshitij Nawandar

Published: 2026-09-07T09:09:58Z

Content type: article

Language: en

Sources: [Razorpay Engineering - Medium](<https://devfeed.tech/sources/razorpay-engineering-medium.md>)

Topics: [Kafka](<https://devfeed.tech/topics/kafka.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [event driven](<https://devfeed.tech/topics/event-driven.md>), [Amazon Simple Queue Service (SQS)](<https://devfeed.tech/topics/amazon-simple-queue-service-sqs.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [aws-sns](<https://devfeed.tech/tags/aws-sns.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [event-driven](<https://devfeed.tech/tags/event-driven.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [razorpay](<https://devfeed.tech/tags/razorpay.md>), [redshift](<https://devfeed.tech/tags/redshift.md>), [sns](<https://devfeed.tech/tags/sns.md>), [sqs](<https://devfeed.tech/tags/sqs.md>)

### AI overview

Razorpay describes five years of evolution in its UPI Switch, from a monolith using AWS SQS to Kafka-based infrastructure. The article covers architectural decisions, operational challenges, and optimization work affecting payment-processing performance, reliability, and scale.

### Source excerpt

Preface The UPI Switch at Razorpay has evolved significantly in the five years since we started building it. The Switch is the platform that enables real-time payment processing with NPCI. When the team began, it was little more than an idea. Today it powers more than 70% of Razorpay's total UPI volume. Because UPI is inherently asynchronous, a messaging system sits at the heart of the Switch and has a direct impact on performance, reliability, and scale. What began as a straightforward queue became the core of the system, shaping how every new feature was designed and delivered. This post covers that evolution: the decisions that enabled growth, the ones that slowed us down, the operational issues that forced us to rethink our assumptions, and the optimizations that ultimately stabilized our Kafka-based infrastructure. This is the story of what we got right, what we got wrong, and how we eventually built something stable enough to grow on. The First Version: Monolith and SQS When we began building the UPI Switch, we weren't thinking about massive scale, distributed systems, or elegant event routing. So we built Switch v1 as a monolith. No microservices, no distributed orchestration: just one solid block of code doing everything. That was the right call. We needed to move fast, experiment, and learn, and we followed the Keep It Simple, Stupid (KISS) principle deliberately. For messaging, we picked AWS SQS: reliable, managed, and low on cognitive load. We didn't need ordering guarantees at the time, so a standard queue worked fine. We started with just two queues, and this setup held its ground. It handled a peak of 400 TPS during the IPL. The limitations showed up as the ecosystem grew. A single event, like a successful payment, needed to fan out into multiple workflows: Update NPCI with an API call Send callbacks to merchants about payment status Push structured data into our warehouse (AWS Redshift) To handle this, we started bolting on AWS SNS plus SQS for fan-ou

## How We Refresh Razorpay's Data Warehouse 10x Faster with Graphs and Indexes

DevFeed: [How We Refresh Razorpay's Data Warehouse 10x Faster with Graphs and Indexes](<https://devfeed.tech/articles/how-we-refresh-razorpay-s-data-warehouse-10x-faster-with-graphs-and-indexes-24040.md>)

Original publisher: [Read original article](<https://engineering.razorpay.com/how-we-refresh-razorpays-data-warehouse-10x-faster-with-graphs-and-indexes-538abc244703?source=rss----6407ad2e59af---4>)

Author: Amit Prabhu

Published: 2026-07-14T14:06:16Z

Content type: article

Language: en

Sources: [Razorpay Engineering - Medium](<https://devfeed.tech/sources/razorpay-engineering-medium.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [airflow](<https://devfeed.tech/topics/airflow.md>), [Apache Spark](<https://devfeed.tech/topics/spark.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [Apache Iceberg](<https://devfeed.tech/topics/apache-iceberg.md>), [microservices architecture](<https://devfeed.tech/topics/microservices-architecture.md>), [parquet](<https://devfeed.tech/topics/parquet.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [airflow](<https://devfeed.tech/tags/airflow.md>), [analytics](<https://devfeed.tech/tags/analytics.md>), [apache-iceberg](<https://devfeed.tech/tags/apache-iceberg.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [batch](<https://devfeed.tech/tags/batch.md>), [data](<https://devfeed.tech/tags/data.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [parquet](<https://devfeed.tech/tags/parquet.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>), [razorpay](<https://devfeed.tech/tags/razorpay.md>), [spark](<https://devfeed.tech/tags/spark.md>), [trino](<https://devfeed.tech/tags/trino.md>), [warehouse](<https://devfeed.tech/tags/warehouse.md>)

### AI overview

Razorpay describes its data warehouse refresh pipeline, which builds wide denormalized Facts by joining data from multiple microservices. The article covers the original Airflow- and Spark-based full-refresh process, the underlying lake formats and query layer, and the scaling challenges that led the team to reconsider refresh strategy, data layout, and high-cardinality dimensions.

### Source excerpt

Contributors: Utkarsh Koppikar Rohan Background Razorpay provides the payment infrastructure for millions of merchants globally. Behind every payment, settlement, and refund is a microservices architecture where each service owns its own database. While this keeps services independent and scalable, it creates a challenge for stakeholders who need to see across those boundaries. The Data Platform team manages the infrastructure that bridges this gap. Transactional data flows into the lake via CDC pipelines, ingested onto S3 in Delta Lake, Apache Iceberg, or plain Parquet formats. On top of the lake, we build domain-specific warehouse tables -- wide, pre-joined tables that co-locate all the data a consumer needs, queryable via Trino. These power two use cases: Analytics (internal dashboards on Tableau and Superset) and Reporting (merchants and regulated entities who download structured data exports; Razorpay generates nearly a million such reports per month). The warehouse tables that power both use cases are called Facts. A Fact is a flat denormalised table on S3, produced by joining 10 to 30 microservice tables and materialising the result once. A settlement Fact, for example, merges payments, refunds, adjustments, and card details into a single wide row so that a dashboard or report reads from a single table instead of joining across services in real time. It is closer to a domain-specific materialised view than a classical data warehouse fact table. We maintain over 50 such Facts, and approximately 40% of all merchant reports are served directly from them. As data volumes and the number of entities per fact grew, the batch generation pipeline began to show its limits, prompting us to rethink the refresh strategy, the data layout, and how to handle high-cardinality dimensions. The rest of this post covers that journey. The Full Refresh Pipeline: Our Baseline and the Pain The original full-refresh pipeline was straightforward. Schedule: Airflow schedules Spark jobs o

## How Razorpay Built a Customer Data Platform for Queryable Segments at Scale

DevFeed: [How Razorpay Built a Customer Data Platform for Queryable Segments at Scale](<https://devfeed.tech/articles/turning-scattered-data-into-queryable-segments-at-scale-how-razorpay-built-its-customer-data-24045.md>)

Original publisher: [Read original article](<https://engineering.razorpay.com/turning-scattered-data-into-queryable-segments-at-scale-how-razorpay-built-its-customer-data-3937c4b012de?source=rss----6407ad2e59af---4>)

Author: Varun Meka

Published: 2026-06-26T08:06:33Z

Content type: article

Language: en

Sources: [Razorpay Engineering - Medium](<https://devfeed.tech/sources/razorpay-engineering-medium.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [App](<https://devfeed.tech/topics/app.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Apache Spark](<https://devfeed.tech/topics/spark.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [banking](<https://devfeed.tech/tags/banking.md>), [card](<https://devfeed.tech/tags/card.md>), [customer](<https://devfeed.tech/tags/customer.md>), [data](<https://devfeed.tech/tags/data.md>), [devices](<https://devfeed.tech/tags/devices.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [payments](<https://devfeed.tech/tags/payments.md>), [platform](<https://devfeed.tech/tags/platform.md>), [razorpay](<https://devfeed.tech/tags/razorpay.md>), [saas](<https://devfeed.tech/tags/saas.md>), [scale](<https://devfeed.tech/tags/scale.md>), [shopping](<https://devfeed.tech/tags/shopping.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

Razorpay describes building an in-house Customer Data Platform to unify fragmented customer and transaction data into queryable audience segments. The supplied excerpt says the platform serves segments across more than 500 million user profiles in under 30 milliseconds while keeping personally identifiable information isolated in source systems.

### Source excerpt

Turning Scattered Data Into Queryable Segments at Scale: How Razorpay Built Its Customer Data Platform A consent-native CDP that serves audience segments across 500M+ user profiles in under 30ms, with PII isolated to the source systems. The Problem We Were Solving A customer opens her favourite online shopping app, adds a few items to her cart, and pays INR 1,200 via UPI, powered invisibly by Razorpay. A week later she returns and pays using a saved Visa card from her laptop. Later that month, she places a larger INR 8,500 order through net banking from work. Three transactions. Three different payment instruments. Three different devices. To the merchant's engineering team, and to Razorpay's data systems, these could look like three completely different people, unless you've done the hard work of figuring out they're all the same customer. Now suppose this is a D2C fashion brand approaching their Diwali sale. The merchant's growth team has a clear plan: "Identify customers who have transacted at least once in the last 30 days, have spent more than INR 5,000 cumulatively this quarter, and haven't enrolled in our loyalty programme. Send them an early-access nudge with a personalized discount 48 hours before the public sale opens." A year ago, answering that question at Razorpay meant filing a cross-team data request, waiting for an analyst to write a custom Spark job, and getting an answer in 2-3 days. By the time the merchant had the segment, the Diwali sale was already live. The early-access window had closed. The campaign got sent to a broader, less-targeted audience, wasting spend on customers who would have bought anyway and leaving cold customers untouched. Now multiply that pain by millions of merchants. Razorpay powers payments and growth for over 12 million merchants. From D2C fashion brands and SaaS startups to subscription platforms, ed-tech companies, and the 2 million+ local merchants accepting QR payments every day. Together, they process billions of transaction

## Razorpay's Linked Payments Architecture for Combining Payment Methods

DevFeed: [Razorpay's Linked Payments Architecture for Combining Payment Methods](<https://devfeed.tech/articles/the-checkout-frustration-razorpay-fixed-combining-payment-methods-24043.md>)

Original publisher: [Read original article](<https://engineering.razorpay.com/the-checkout-frustration-razorpay-fixed-combining-payment-methods-0e0b05fdf104?source=rss----6407ad2e59af---4>)

Author: Vatsal Mehta

Published: 2026-04-08T09:56:17Z

Content type: article

Language: en

Sources: [Razorpay Engineering - Medium](<https://devfeed.tech/sources/razorpay-engineering-medium.md>)

Topics: [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [architectures](<https://devfeed.tech/tags/architectures.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [fintech](<https://devfeed.tech/tags/fintech.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [monolithic-architecture](<https://devfeed.tech/tags/monolithic-architecture.md>), [payment](<https://devfeed.tech/tags/payment.md>), [payment-gateway](<https://devfeed.tech/tags/payment-gateway.md>), [payment-processing](<https://devfeed.tech/tags/payment-processing.md>), [payments](<https://devfeed.tech/tags/payments.md>), [razorpay](<https://devfeed.tech/tags/razorpay.md>), [recovery](<https://devfeed.tech/tags/recovery.md>), [technical](<https://devfeed.tech/tags/technical.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

Razorpay describes Linked Payments, an architecture that lets customers combine a gift card with card, UPI, or another payment method for one order. The article explains the resulting challenges around authorization sequencing, failure recovery, and split settlement across payment-method microservices.

### Source excerpt

You have a $50 gift card. Your cart is $75. The checkout says "pick one payment method." This is a solvable problem. If you've ever tried to use a gift card for an online purchase, you know this frustration intimately. The gift card covers most of it, but not quite all. The checkout forces you to choose: use the gift card and abandon some items, or ignore the gift card and pay the full amount another way. Either choice feels wrong. This isn't a technical limitation of payment processing. It's an architectural one. Most payment systems treat each method as an isolated, complete transaction. You pay with a card OR UPI OR a gift card. The concept of composing multiple methods to fulfill a single order simply doesn't exist in traditional payment gateway architectures. At Razorpay, this limitation was costing merchants real money. Gift card redemption rates suffered because customers abandoned partial-value cards. Average order values stayed lower because customers couldn't combine store credit with additional payment. The business case for solving this was clear. That's why we built Linked Payments, a system that treats payment methods as composable building blocks. Customers can now use a gift card for $50, then cover the remaining $25 via card, UPI, or any other method. The system handles authorization sequencing, failure recovery, and settlement splitting automatically. The Complexity Hidden in "Just Combine Them" The challenge sounds simple until you consider what payment systems actually do. Traditional payment flows are beautifully simple. Customer initiates payment. System authorizes the full amount from one method. If authorization succeeds, capture the funds. Settle to the merchant. Either the payment worked or it didn't. One authorization, one capture, one settlement. Linked payments shatter this simplicity. Now you have multiple authorizations for a single order. Sequential dependencies where the second payment only happens if the first succeeds. Partial fail

## Razorpay Review 2026: Features, Pricing, Limits for SaaS

DevFeed: [Razorpay Review 2026: Features, Pricing, Limits for SaaS](<https://devfeed.tech/articles/razorpay-review-2026-features-pricing-limits-for-saas-10300.md>)

Original publisher: [Read original article](<https://dodopayments.com/blogs/razorpay-review/>)

Author: Joshua D'Costa

Published: 2025-11-19T00:00:00Z

Content type: opinion

Language: en

Sources: [Dodo Payments Blog](<https://devfeed.tech/sources/dodo-payments-blog.md>)

Topics: [Software as a service](<https://devfeed.tech/topics/saas.md>), [Binance](<https://devfeed.tech/topics/binance.md>)

Tags: [alternatives](<https://devfeed.tech/tags/alternatives.md>), [api](<https://devfeed.tech/tags/api.md>), [features](<https://devfeed.tech/tags/features.md>), [india](<https://devfeed.tech/tags/india.md>), [net](<https://devfeed.tech/tags/net.md>), [net-11](<https://devfeed.tech/tags/net-11.md>), [payment-gateway](<https://devfeed.tech/tags/payment-gateway.md>), [pricing](<https://devfeed.tech/tags/pricing.md>), [razorpay](<https://devfeed.tech/tags/razorpay.md>), [review](<https://devfeed.tech/tags/review.md>), [subscription](<https://devfeed.tech/tags/subscription.md>)

### AI overview

This review examines Razorpay as an India-focused payment gateway for SaaS companies, covering its local payment coverage, APIs, pricing considerations, recurring billing, and limitations for global collections and compliance. It also discusses when a merchant-of-record provider may be a better fit.

### Source excerpt

This Razorpay review covers pricing, international collections, recurring billing limits, and when Indian SaaS teams need a merchant-of-record alternative in 2026.

## Skydo Review and Top Alternative in 2026

DevFeed: [Skydo Review and Top Alternative in 2026](<https://devfeed.tech/articles/skydo-review-and-top-alternative-in-2026-10383.md>)

Original publisher: [Read original article](<https://dodopayments.com/blogs/skydo-review/>)

Author: Joshua D'Costa

Published: 2025-10-28T00:00:00Z

Content type: comparison

Language: en

Sources: [Dodo Payments Blog](<https://devfeed.tech/sources/dodo-payments-blog.md>)

Topics: [Finance](<https://devfeed.tech/topics/finance.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [alternatives](<https://devfeed.tech/tags/alternatives.md>), [compare](<https://devfeed.tech/tags/compare.md>), [cross-border-payments](<https://devfeed.tech/tags/cross-border-payments.md>), [finance](<https://devfeed.tech/tags/finance.md>), [paypal](<https://devfeed.tech/tags/paypal.md>), [pricing](<https://devfeed.tech/tags/pricing.md>), [product](<https://devfeed.tech/tags/product.md>), [razorpay](<https://devfeed.tech/tags/razorpay.md>), [review](<https://devfeed.tech/tags/review.md>), [saas](<https://devfeed.tech/tags/saas.md>)

### AI overview

This 2026 review evaluates Skydo as a cross-border collections tool for Indian freelancers, agencies, service exporters, and some SaaS teams. It covers pricing, RBI and FEMA-related workflows, local INR settlement, FIRA documentation, and alternatives. The article distinguishes payment collection from billing, subscriptions, tax handling, and Merchant of Record responsibilities.

### Source excerpt

An updated 2026 Skydo review for Indian exporters and SaaS teams. Compare pricing, RBI and FEMA workflows, FIRA handling, and alternatives like Payoneer, PayPal, Razorpay, and Dodo Payments.