Ankit Kumar
90d · built 2026-07-24
90-day totals
- Commits
- 112
- Grow
- 17.7
- Maintenance
- 47.9
- Fixes
- 3.5
- Total ETV
- 69
Where this dev ranks
Percentile against the global top-100 leaderboard (all-time totals).
- By commits
- Top 93 %
- By Growth share
- Top 76 %
30-day trajectory
Last 30 days vs. the 30 days before. Up arrows on Growth and ETV mean improvement; up arrow on Fixes share means more time on fixes (worse).
↓-76.5 %
vs 34 prior
↑+6.2 pp
recent vs prior
↓-6.4 pp
recent vs prior
Daily performance
Daily ETV, stacked by Growth, Maintenance and Fixes.
Work-mix over time
Share of Growth / Maintenance / Fixes over a rolling 7-day window. Reads as 'where is effort flowing right now'.
Repository spread
Where this developer's commits land. Concentrated work (top1 > 80%) vs polymath spread (top1 < 30%).
Most impactful commits
Top 20 by ETV in the 90-day window.
- 2.8ETVAdd TLS pipeline for fast thrift server Summary: Adds a TLS pipeline for fast thrift server. Adds a TLS handler to the conneciton pipeline which owns the TLS pipeline. Adds PERMITTED mode for TLS. Reviewed By: robertroeser Differential Revision: D106108957 fbshipit-source-id: a2eed2115a251f60ea83bab304342d6802826d1egithub.com-facebook-fbthrift · 85b46823 · 2026-05-27
- 1.8ETVAdds TLS support for Fast Thrift Server Summary: Adds TLS support for fast thrift server, which defaults to Required. Reviewed By: robertroeser Differential Revision: D103565194 fbshipit-source-id: 2375933a9ae9d7b1297af5794a321e54638d86dfgithub.com-facebook-fbthrift · 636d85fe · 2026-05-11
- 1.7ETVTLS hot-reload via folly::Observer + mTLS/ticket-cipher parity Summary: Promote the `(fizzContext, thriftParams, handshakeTimeout)` triple into a single immutable `security::TLSParams` aggregate and distribute it pull-based through a `folly::observer::SimpleObservable` owned by `ConnectionManager`. `TLSDetectionHandler` and `FizzHandshakeHandler` store an `Observer<shared_ptr<const TLSParams>>` and snapshot it per accepted connection, so a single `setValue` on the observable replaces the previous per-EVB `setTLSParams` fan-out. In-flight handshakes still survive the swap via the inner `shared_ptr`s they captured at `start()`. `FizzServerCertConfig` gains the knobs needed for parity with classic `apache::thrift::ThriftServer` deployments: mTLS via `caPath` or a caller-supplied `fizz::CertificateVerifier`, a caller-supplied `fizz::Factory`, ALPN policing (`AlpnMode`), AEGIS cipher preference, and `TicketCipherSeeds` (old/current/new rotation, with `IdentityOnly` or `X509` cipher kind). `FizzServerContextBuilder` wires all of those into the produced `fizz::server::FizzServerContext`. `buildTLSParams` is the single entry point and throws synchronously on invalid configuration, so a bad reload leaves the running server untouched. `FastThriftServer::reloadTLSConfig(FizzServerCertConfig)` is the public hot-reload entry point: builds new `TLSParams` outside the lifecycle lock, then publishes via `ConnectionManager::setTLSParams`. Intended for cert / ticket-key rotation driven by an embedder-owned watcher. Reviewed By: robertroeser Differential Revision: D106117173 fbshipit-source-id: db3a42ac37d4e4202397e84e7c258793b4434abdgithub.com-facebook-fbthrift · c777cfd2 · 2026-05-27
- 1.5ETVIntegrate write completion tracking into rocket pipeline Summary: This integrates the event based write completion notification into the rocket client and server pipelines. Added tests and benchmarks for this. Reviewed By: robertroeser Differential Revision: D107293277 fbshipit-source-id: 7567f3b473f9b58dddb67f4c1a6733de56a4fcfbgithub.com-facebook-fbthrift · cfb76a1e · 2026-06-07
- 1.4ETVExtend payload variants Summary: Extends payload variants for different types through C++20 concepts to add functions for getRequestRpcMetadata and getResponseRpcMetadata. This will be useful for composite app adapter. Also adds into stream payload struct to the finish the list of structs to be used. Reviewed By: robertroeser Differential Revision: D104758397 fbshipit-source-id: e306229aef432e0c1d312f8f3072ece8cf087522github.com-facebook-fbthrift · c0716c87 · 2026-05-14
- 1.4ETVSwitch to a single composed frame Summary: Variant helped us reduce the size of the message to keep it within 120 bytes with some buffer. But as we added more APIs to it, the cost went up. A single ComposedFrame while contains more switch cases to roll through, is a bit more performant on average (with more APIs), and works better with Fragmentation/Defragmentation handlers. Reviewed By: robertroeser Differential Revision: D106331330 fbshipit-source-id: ee9701fc8a945697837d5bbe8dd06c4d6f1ab2a0github.com-facebook-fbthrift · 47ab61d3 · 2026-05-28
- 1.4ETVMake event dispatch based on event type Summary: This allows handlers to opt-in to certain event types. Events would only be dispatched to handlers that opt-in for them. Event registration is compile time. Reviewed By: robertroeser Differential Revision: D107343886 fbshipit-source-id: 27718994375a8a41715853db325f1e82109fbbd6github.com-facebook-fbthrift · 97b441b4 · 2026-06-05
- 1.3ETVAdd integration/E2E tests and integration benchmarks for composite Summary: TSIA Reviewed By: robertroeser Differential Revision: D105740990 fbshipit-source-id: bd745f80e37c818ecaa949bfd6dd1f1b100be7fagithub.com-facebook-fbthrift · 31ec6575 · 2026-05-23
- 1.3ETVWrite completion tracking E2E Summary: How write completion works: 1. Transport handler spawns a transport side event 2. Batching handler spawns a batch complete event with number of frames 3. RocketClient handler spawns a per-write complete event with the request context This allows 3 different points of write completion: 1. Transport write done 2. Batch write done 3. Rocket write done One remaining level in this is fragmentation support, which would be added in the next diff. Reviewed By: evanjzou Differential Revision: D109460051 fbshipit-source-id: ad04b6ebfcca5d5bb70c5a08a5cec9e0a883e1f1github.com-facebook-fbthrift · 769be266 · 2026-06-29
- 1.3ETVDrain in-flight callbacks and notify peer on server stop Summary: `ThriftServerAppAdapter` now gates `Closed` + `closeCallback` on a 1:1 `inFlight_` counter (`++` in `handleRequestResponse`, `--` in `fireResponse`); new `sendConnectionCloseErr()` pushes a stream-0 ERROR(`CONNECTION_CLOSE`) through the pipeline so the client stops sending new requests on graceful shutdown. `FastThriftServer::stop()` EVB-hops `sendConnectionCloseErr()` per connection and blocks on `connectionsDrainedBaton_` until the last in-flight handler completes — no more UAF when an async handler fires after `stop()`. Reviewed By: robertroeser Differential Revision: D105898813 fbshipit-source-id: f9714f360cf20718d6c565e5604a8332a1240a98github.com-facebook-fbthrift · 299e4991 · 2026-05-23
- 1.3ETVImplement ComposedFrame Summary: Adds a ComposedFrame concept and a variant for it, that uses the concept to support restricted set of APIs without indirections. Helps remove unnecessary visit indirections (vtable, etc.) and branches, when all payloads share the same APIs. Uses fold expression with if/else branching. Given the different frame types we would be supporting (fewer than 8) this is more optimal than a jump table (switch) and also better than a std::visit (indirection + vtable). If things change in future, we can revisit if we need jump table approach. Also only uses 1 extra byte for the discriminator (frame type), compared to 8 bytes of std::variant. Reviewed By: robertroeser Differential Revision: D102554159 fbshipit-source-id: c3e9fe16aa6f1da81d905233aa9a3466ae12bfe9github.com-facebook-fbthrift · 805406ff · 2026-04-29
- 1.3ETVFix lifecycle for thrift client pipelines. Summary: Critical changes: 1. App and transport adapters hold dtor guards on the pipeline to prevent destruction until resetPipeline() is called. 2. Fixed owners to treat client as an extension of app adapter itelf for lifecycle management. 3. Separated connection/disconnection from pipeline destruction. i.e. pipeline->close() is only trigerred when the connection is no longer needed (destruction). activate/deactivate is connection management to signal connect/disconnect. Reviewed By: robertroeser Differential Revision: D104598289 fbshipit-source-id: ef5a0369f5004a99dd6c99655f71a69e78817464github.com-facebook-fbthrift · ddf053d7 · 2026-05-13
- 1.2ETVSupport compact for metadata serialization Summary: uCache uses compact for metadata serialization, so we need to support it. Reviewed By: robertroeser Differential Revision: D104258970 fbshipit-source-id: cf065a8f131f4b5aed9b17b779767ca175efd77agithub.com-facebook-fbthrift · 22603bd0 · 2026-05-12
- 1.2ETVDecouple thrift client pipeline from rocket frame Summary: Converts rocket frame into a thrift side payload on the inbound side of transport adapter. We'll extend checksum handler on the response side use this for checksum validation. Reviewed By: robertroeser Differential Revision: D104300060 fbshipit-source-id: a9b67313c27d34010d9f211f0db834d38a9b9257github.com-facebook-fbthrift · 4c020cec · 2026-05-12
- 1.2ETVImplement write buffering backpressure handler Summary: After backpressure is returned it moves into backpressure mode. Until backpressure is released it buffers writes. At this point it would start returning backpressure on reads. Once write backpressure is released and all buffered writes are flushed, it would release read backpressure. Overall this will lead to end to end backpressure support. Reviewed By: robertroeser Differential Revision: D106258439 fbshipit-source-id: 0d0fb1da0a5db916d39dee8fab5f0924d0442caagithub.com-facebook-fbthrift · e672c6ae · 2026-05-27
- 1.2ETVFix fragmentation/defragmentation handlers Summary: Since our messages have evolved over time, the handlers were a bit stale and needed to adapt to new messages. Reviewed By: robertroeser Differential Revision: D106331461 fbshipit-source-id: 3a7a3644acf3050e2cfc6b41f2be0fa4bfa3830egithub.com-facebook-fbthrift · 9cf0a209 · 2026-05-28
- 1.1ETVClean up transport handler lifecycle Summary: 1. Added resetPipeline() which releases the dtor guard on the pipeline prior to destruction. 2. Added DCHECKs in places where the pipeline is being accessed to catch call sites that don't set the pipeline. Reviewed By: robertroeser Differential Revision: D104598273 fbshipit-source-id: 261fdcaa7b70d0c8604cad26535f9311f1c5084dgithub.com-facebook-fbthrift · 94fd4979 · 2026-05-13
- 1.1ETVImplement integration test and bench for new generated handler Summary: TSIA Reviewed By: robertroeser Differential Revision: D103624912 fbshipit-source-id: b82c92f98a7d419502212a038fc36efb65b764fbgithub.com-facebook-fbthrift · 4bbae0bb · 2026-05-09
- 1.1ETVMove connection close handling to a handler Summary: Adds a new server side connection close handler Adds a CloseConnection and a ConnectionClosed event. This removes the additional graceful drain and connection closing responsibility from the adapter. Also removes all the drain logic from connection manager, it's simple now: Calls close() which gets passed to the adapter. The adapter then sends a CloseConnection event, once the drain is done the handler waits for pending requests to be reaped (so there is no SEGFAULT when the adapter goes away), and then fires a ConnectionClosed event. If it hits a timeout for draining it just starts reaping, If it hits a timeout for reaping, it does a LOG(FATAL) to core and prevent a hang. closeCallback is now only called when the ConnectionClosed event is fired to the app adapter. Reviewed By: robertroeser Differential Revision: D106248198 fbshipit-source-id: 3e0611b94e2eaa2172fff512e81e8f0c953bd3e8github.com-facebook-fbthrift · 68a730b5 · 2026-05-27
- 1.1ETVAdd RequestContext to replace additional Thrift/SR maps Summary: Gets rid of the pending requests map on thrift side, and instead we now allocate a RequestContext object on heap. A type erased unique_ptr to this object is passed to stream state handler, which stores it, and is passed back on the response path. Any handlers that need to keep some state can add to this context object, i.e. transport stats, etc. The reason response path shows a lot of improvement is because the contentious 2xmap look up becomes 1x, and then we just use the pointer. Reviewed By: robertroeser Differential Revision: D103702090 fbshipit-source-id: 9c3344c71b67d1eabea9e4b89d48581c4895afe6github.com-facebook-fbthrift · 98c904a9 · 2026-05-07