From exchange to your screen: how SAHI gets prices onto its charts in milliseconds

A chart is only useful if it shows the price now, not two seconds ago. SAHI built every layer between the exchange and your screen itself, so the chart can keep up when the market moves.

This is SAHI's engineering story, retold for traders. Each part says where you meet it on SAHI web, what it is, and what it does for you. The numbers are the ones SAHI's engineers report; we did not measure them. The screens are SAHI web on Sunday 25 October 2026, light and dark, so the prices are from Friday's close and no live ticks are moving.

01App

The pipeline: exchange to screen

1Where it is

WhereBehind every SAHI chartWatchlistOption chain

You do not open it: it runs behind every price on SAHI, on the web terminal and the app. Every chart, watchlist row and option chain price arrives through it.

2What it is

Prices reach SAHI's data centre over a dedicated fibre link from the exchange. Adaptors turn NSE's and BSE's different formats into one, so nothing later has to. From there the data is broadcast inside SAHI's cloud and splits in two.

The fast path carries live ticks: FeedBroker keeps the latest price of every instrument and passes ticks to the FeedServers, which hold the connection to your screen. The durable path builds history: ticks go through a queue to the Candles Writer, which makes 5-second, 1-minute and 1-hour candles and stores them in ScyllaDB, a fast database; the Candles API serves them back. Both paths end in Sahi Charts.

Click a label, or a part of the picture

  1. B
    Adaptors

    Turn every exchange's format into one, once, at the edge.

  2. D
    Fast path

    FeedBroker and FeedServers: live ticks to your screen over a WebSocket.

  3. F
    Your terminal

    Sahi Charts, which take both: history when you open a chart, ticks as they happen.

SAHI's diagram of its low-latency feed: the exchange connects by physical fibre to a data centre with a fibre link and adaptors, then to cloud infrastructure where UDP multicast splits into FeedBroker and FeedServers sending to the client over WebSocket, and a message queue, Candles Writer, ScyllaDB and Candles API serving the client over REST, ending at the Sahi client terminal with Flutter charts
  1. A
    Exchange and fibre

    Prices leave NSE or BSE over a dedicated fibre link.

  2. C
    Multicast

    One broadcast inside SAHI's cloud; here the data splits in two.

  3. E
    Durable path

    Queue, Candles Writer, ScyllaDB and Candles API: the chart's history.

SAHI's own diagram of the feed, labelled.

3How it helps

  • Fewer hand-offs, less delay. Each part was built for this job, so no generic layer sits in the way adding its own lag.
  • History and live prices do not compete. Loading a year of candles uses a different path from the ticks moving your chart.
02Charts

Chart history in milliseconds

1Where it is

WhereSAHI webAny chart1D to 5YInterval

Every time you open a chart, press a range such as 1Y or 5Y, change the interval, or scroll back in time, the chart asks the Candles API for history.

2What it is

Candles are stored in ScyllaDB. SAHI's first design kept all of an instrument's candles for an interval together, and for busy names like NIFTY, Bank NIFTY and Reliance those blocks grew so large that the slowest loads took 300 milliseconds.

The fix was to split each instrument's history into time buckets, sized for each interval, and to send each query straight to the server and processor core that hold the data. SAHI reports about 10 ms to fetch 1,000 candles for 99 in 100 requests, under 20 ms for 999 in 1,000, and under 25 ms for 9,999 in 10,000.

Click a label, or a part of the picture

  1. A
    Range

    1D to 5Y: how much history to load.

  2. B
    Interval

    1m to 1d: the size of each candle.

  3. D
    High and low

    2038.00 and 1168.20, the extremes of the loaded range.

SAHI web daily chart of Ipca Laboratories over one year, at 1953.30, up 49.80 or 2.62 percent, with range buttons 1D to 5Y, intervals 1m to 1d, a high of 2038.00 and a low of 1168.20 marked, and the last price label 1940.50SAHI web daily chart of Ipca Laboratories over one year, at 1953.30, up 49.80 or 2.62 percent, with range buttons 1D to 5Y, intervals 1m to 1d, a high of 2038.00 and a low of 1168.20 marked, and the last price label 1940.50
  1. C
    A year of candles

    Each one comes from the Candles API, fetched in milliseconds.

  2. E
    Last price

    Where the newest candle is; live ticks move it during market hours.

SAHI web, Stocks: one year of daily candles on Ipca Laboratories.

3How it helps

  • Switch without waiting. Going from 5m to 1d, or from 1M to 5Y, redraws as fast as you can press.
  • Scroll back freely. Older candles arrive as you pan, so looking for last year's level does not stall the chart.
Try it

SAHI's own challenge: open any stock and scroll back through a year of candles. On the chart above, 1Y on the daily interval is roughly 250 candles, a quarter of a 1,000-candle request.

Good to know
  • These are SAHI's reported server timings. What you see also depends on your connection and device.
03Charts

Live prices to thousands of screens at once

1Where it is

WhereSAHI webEvery chart, watchlist and chainLive price

The live price in each chart header, the price label on the right edge and every watchlist and option chain price are fed by the FeedServers during market hours.

2What it is

A NIFTY tick can have tens of thousands of people waiting for it. SAHI's first FeedServer sent each tick to subscribers one after another, and the slowest ticks took 10 ms to reach everyone. Splitting subscribers across parallel shards, and a long list of tuning inside each shard, brought that to under 2 ms for 9,999 ticks in 10,000.

The FeedServers are written in Rust, with no pauses for memory clean-up. A tick is encoded once for each kind of subscription (last price, quote, full depth) and shared, not rebuilt for every user. Each connection sends whatever has piled up in one write, so a slow phone gets bigger batches and a fast one gets small, frequent ones; a connection that falls too far behind is dropped so it cannot slow the rest.

Click a label, or a part of the picture

  1. A
    NIFTY50 price

    22600.00, −87.65 (0.39%): live during market hours.

  2. C
    Option price

    The 27 Oct 22850 call at 45.20, fed by the same servers.

SAHI web Scalper workspace with a NIFTY50 chart at 22600.00, down 87.65 or 0.39 percent, beside a NIFTY 27 Oct 22850 call chart at 45.20, down 43.55 or 49.07 percent, each with a live price label on the right edgeSAHI web Scalper workspace with a NIFTY50 chart at 22600.00, down 87.65 or 0.39 percent, beside a NIFTY 27 Oct 22850 call chart at 45.20, down 43.55 or 49.07 percent, each with a live price label on the right edge
  1. B
    Price label

    Moves with every tick, on the right edge of the chart.

  2. D
    Option price label

    45.15 on the last candle; ticks update it and the candle together.

SAHI web, Scalper: NIFTY and one of its options, each priced by the live feed. Taken after the close.

3How it helps

  • The price you see is the price now. A tick that takes under 2 ms to leave SAHI's servers is not what stands between you and the market.
  • Busy moments stay smooth. SAHI reports about 8 billion ticks and 600,000 messages a second on a normal day, served at around 20% of three small servers, so there is room to spare when the market spikes.
Tip

On a weak mobile signal the feed sends ticks in larger batches to catch you up. If your price label stops moving during market hours, check your connection before you act on the price.

Good to know
  • The pictures were taken on a Sunday, so no ticks are arriving in them.
  • Server timings are SAHI's; your network adds its own delay.
04Charts

Charts SAHI built itself

1Where it is

WhereSAHI webSAHI appSahi Charts

Every chart on SAHI web and the app carries the SAHI Charts mark in its lower-left corner. The Buy and Sell buttons in its header place orders from the chart itself.

2What it is

Many trading apps embed a ready-made charting library inside a web view, which adds its own process, its own JavaScript and a bridge for every touch. SAHI wrote its charting engine from scratch in Flutter, with its own drawing and gestures, and the same code runs the app and the web terminal.

Because the chart talks straight to the Candles API and the FeedServers, a tick updates the chart with nothing in between. It also makes trading from the chart, showing your positions and drawing your orders at their prices part of the same chart, not add-ons.

Click a label, or a part of the picture

  1. A
    Buy and Sell

    Open the order window from the chart you are looking at.

  2. D
    SAHI Charts

    The mark of SAHI's own charting engine, on web and app.

SAHI web 5-minute chart of the NIFTY 27 Oct 22850 call with Buy and Sell buttons in its header, the chart toolbar, candles with volume bars below, the last price label 45.15 and the SAHI Charts markSAHI web 5-minute chart of the NIFTY 27 Oct 22850 call with Buy and Sell buttons in its header, the chart toolbar, candles with volume bars below, the last price label 45.15 and the SAHI Charts mark
  1. B
    Chart tools

    Indicators, templates, drawing, chart type and settings, all SAHI's own.

  2. C
    Live candle

    The last candle and its price label, updated straight from the feed.

SAHI web: an option chart you can trade from. Shown light and dark.

3How it helps

  • Smooth to handle. Pinch, zoom, pan and switch timeframes without the stutter a web view can add.
  • Trade where you look. Buy and Sell sit on the chart, and orders and positions are drawn on it.
Try it

SAHI's challenge to readers: at the market open, pinch, zoom, scroll and switch timeframes on a busy chart, and see if you can make it stutter.

Questions

Did you measure these numbers?

No. They are the figures SAHI's engineers report in their article. Your own experience also depends on your connection and device.

What is p99 or p9999?

The time within which 99 in 100 (p99) or 9,999 in 10,000 (p9999) requests finish. It describes the slow end, not the average.

Is the web terminal's chart the same as the app's?

Yes. SAHI says the same Flutter chart code runs both.

Why does the chart in the pictures not move?

They were taken on a Sunday, after Friday's close.

See it on SAHIOpen a busy chart at the open and scroll back a year.

Open SAHI

Screenshots show SAHI on 23–25 Oct 2026; prices in them are from that session. Educational content only, not investment advice. Investments in securities market are subject to market risks. Read all related documents carefully before investing.

vs sahi.com

This page against sahi.com

This page

Not checked page by page yet

Nothing is written down for this page yet.

On every page as well: 1 missing · 22 bad · 6 changed (the header, footer, colours and theme). See the every-page list.

Open on sahi.comThe full report