Why architecture matters here
Thrift fails on scaling, auth, and client-pattern mistakes (per-op reconnect). Architecture matters because gateway sizing + auth + patterns shape performance.
The architecture: every piece explained
The top strip is the request. Client (any language) speaks Thrift. Thrift server(s) stateless workers. HBase Java client wrapped inside. Region servers handle data.
The middle row is quality. Auth — SASL / Kerberos. Connection pool reuses HBase connections. Framed vs buffered Thrift variants. Load balancer for gateway HA.
The lower rows are ops. Observability per gateway. Client patterns — batch + retry with backoff. Ops — capacity + upgrade + fallback.
End-to-end flow
End-to-end: Python client calls Thrift with Kerberos auth. Thrift server picks pooled HBase connection, executes op, returns. Batching amortizes overhead. LB distributes across Thrift servers.