Zerodha tech stack and engineering philosophy

From WebNotes, a public knowledge base. Last updated . Reading time ~10 min.

Overview

Zerodha operates one of the highest-volume retail brokerage platforms in India, processing millions of orders daily across equity, currency, and commodity derivative markets. The technology infrastructure required to support this scale – handling order routing, real-time market data, position tracking, margin calculation, and settlement reconciliation for millions of concurrent users – represents a significant engineering challenge. Zerodha has been unusual among Indian financial services companies in publicly documenting many of its technology choices and engineering decisions through its engineering blog (zerodha.tech) and Z-Connect posts, providing transparency into its technical approach.

The broad outlines of Zerodha’s current technology stack, as documented publicly by the company, centre on Go for backend services, Vue.js for web frontend (including Kite), PostgreSQL for relational data, and a preference for minimal, composable infrastructure over heavyweight enterprise platforms.

Backend: Go

Go (also called Golang), Google’s compiled, statically typed programming language released in 2009, is Zerodha’s primary language for backend services. Zerodha has been one of the most prominent Indian technology companies to adopt Go as a primary language, and its engineering blog has documented the rationale for this choice.

The arguments Zerodha has made for Go in backend financial services contexts include:

  • Performance: Go compiles to efficient native code and produces services with low memory footprint and fast request handling. For order management and market data distribution – where latency and throughput are primary constraints – Go’s performance characteristics are well-suited.
  • Concurrency model: Go’s goroutines and channels provide a clean concurrency model for handling the high volumes of concurrent connections required when streaming real-time market data to millions of clients simultaneously. The WebSocket connections maintained by Kite for real-time quotes are handled by Go backend services.
  • Simplicity: Go’s deliberately minimal language design means that code written by different engineers on the same team tends to be readable and consistent. In a financial services context, where code correctness is critical and code review is essential, this simplicity reduces the risk of subtle bugs arising from complex language features.
  • Standard library: Go’s standard library includes mature HTTP, networking, and cryptography packages that cover most of the needs of a brokerage backend without requiring large external dependencies.

Zerodha’s engineering team has published several posts on specific Go-based components they have built, including high-throughput market data distribution services, order routing systems, and database interaction layers.

Frontend: Vue.js and Kite

Kite is built using Vue.js, a JavaScript framework for building reactive web applications. Vue.js was chosen for Kite’s frontend as an alternative to the larger React and Angular frameworks, reflecting a preference for a lighter and more incremental adoption path. Vue’s component-based architecture aligns well with Kite’s modular interface, where individual components (watchlist, chart, order form, positions) can be developed and updated independently.

Kite’s charting module, which supports multiple chart types and a comprehensive library of technical analysis indicators, is built on a high-performance JavaScript charting library that renders to canvas for smooth, real-time updates as price data arrives via WebSocket.

The mobile version of Kite (available on Android and iOS) is built as a native application rather than a web wrapper, providing better performance and access to device capabilities (notifications, biometric authentication) on mobile platforms.

Data storage: PostgreSQL and time-series databases

Zerodha uses PostgreSQL as its primary relational database for account data, order records, ledger entries, and client information. PostgreSQL’s strong ACID compliance, mature replication, and comprehensive feature set make it a standard choice for financial applications where data integrity is paramount.

For market data and time-series data (tick data, OHLC candles), Zerodha has described using specialised storage approaches appropriate to the characteristics of time-series financial data: high write throughput, efficient range queries by time, and compressed storage for historical records. The engineering blog has discussed the challenges of storing and querying historical tick data at the volume generated by Indian exchanges.

Real-time market data infrastructure

Distributing real-time market data (quotes, depth, and tick data) to millions of concurrent Kite users requires infrastructure specifically optimised for high fan-out, low-latency streaming. Zerodha’s market data infrastructure takes exchange feeds from the NSE and BSE, normalises and processes the data, and distributes it to Kite clients via WebSocket connections.

The engineering blog has documented the challenge of managing the WebSocket connection pool at scale – handling client disconnections, reconnections, subscription management, and the burst load during high-volatility market events when millions of clients may be simultaneously watching the same instruments.

Philosophy of minimal infrastructure

A recurring theme in Zerodha’s engineering communications is a preference for minimal, understood infrastructure over complex enterprise platforms. The engineering team has expressed scepticism toward large middleware systems, message queues with complex configuration surfaces, and vendor-specific cloud services that create lock-in or add operational complexity.

This philosophy reflects the reality that a small engineering team – Zerodha’s engineering organisation is deliberately small relative to the scale of the business – cannot effectively operate and debug complex infrastructure. Simple, well-understood components are easier to reason about, easier to debug under pressure, and easier to replace if something better becomes available.

The engineering blog has documented specific instances where Zerodha chose a simple solution (a well-tuned PostgreSQL instance, for example) over a more complex distributed system (a specialised cluster or new database technology), on the grounds that the simple solution was adequate for the actual workload and far easier to operate reliably.

Open-source contributions and tool building

Zerodha’s engineering team has built and open-sourced several tools that emerged from real engineering challenges at scale. The listmonk newsletter tool arose from the need to send transactional and marketing communications to millions of clients; the goyesql library arose from a preference for separating SQL from Go code. The pattern is consistent: engineers solve a real problem, build a clean solution, and release it publicly.

This approach to open source is different from organisations that open-source legacy code or showcase projects. Zerodha’s open-source releases are generally tools that the team actively uses in production, which tends to produce higher quality and more practically useful software.

Regulatory technology and compliance infrastructure

Beyond the client-facing platform, Zerodha operates significant compliance and regulatory technology infrastructure. This includes:

  • Margin calculation engines: Real-time and end-of-day margin calculation across all client positions, incorporating SPAN margin parameters published by the clearing corporations and applying peak margin rules.
  • Settlement reconciliation: Automated matching of exchange settlement files against internal ledgers, flagging discrepancies for manual review.
  • Regulatory reporting: Automated generation and submission of position reports, client fund reports, and other filings required by SEBI, NSE, BSE, and the clearing corporations.
  • Risk monitoring: Real-time monitoring of client positions for margin breaches, unusual trading patterns, and compliance with product circle authorisations.

The engineering complexity of compliance infrastructure is often underestimated. Regulatory requirements change frequently (new SEBI circulars, updated clearing corporation margin parameters, changes to settlement timelines), and the engineering team must update the compliance systems to reflect these changes, typically within short notice periods.

Engineering team size and culture

Zerodha has consistently described its engineering team as deliberately small for the scale of the business – a fraction of the engineering headcount that most comparable platforms (by transaction volume or client count) would employ. This choice reflects a philosophical commitment to simplicity and productivity: a small team with clear responsibilities, using well-chosen tools, can maintain and evolve a large-scale system effectively.

The Z-Connect blog and engineering blog communications consistently attribute this approach to co-founder Nithin Kamath’s view that technology is a means to serve clients rather than an end in itself, and that adding engineering complexity in the absence of genuine need reduces reliability and increases operational risk.

References

  • Zerodha engineering blog, zerodha.tech, various posts on Go, PostgreSQL, and system design.
  • Zerodha Z-Connect Blog, “How Zerodha’s technology works,” Zerodha.com.
  • Zerodha Z-Connect Blog, “Open-sourcing tools from Zerodha’s engineering team,” Zerodha.com.
  • Go programming language documentation, golang.org.
  • Vue.js documentation, vuejs.org.
  • Kite Connect developer documentation, kite.trade.

Reviewed and published by

The WebNotes Editorial Team covers Indian capital markets, payments infrastructure and retail investor procedures. Every article is fact-checked against primary sources, principally SEBI circulars and master directions, NPCI specifications and the official support documentation published by the intermediary in question. Drafts go through a second-pair-of-eyes review and a separate compliance read before publication, and revisions are tracked against the SEBI and NPCI rule changes referenced in the methodology section.

Last reviewed
Conflicts of interest
WebNotes is independent. No relationship with any broker, registrar or bank named in this article.