high-performance transaction ingestion gateway for the Tana blockchain.
tana-queue is the entry point for all transactions entering the blockchain. it provides an HTTP API for submitting transactions and manages a Redis-backed queue that validators consume during block production.
clients submit transactions via HTTP POST. the queue service validates the basic structure and pushes them to a Redis stream. validators then consume batches of transactions from the stream when producing blocks.
clients
|
v
POST /transactions
|
v
tana-queue
|
v
Redis stream
|
v
validators consume for block production
multiple queue instances can run behind a load balancer, all writing to the same Redis backend. this allows linear scaling of ingestion throughput.
load balancer
|
+----+----+----+
| | | |
q1 q2 q3 q4
| | | |
+----+----+----+
|
Redis
single instance handles 5,000-10,000 transactions per second. four instances can handle 20,000-40,000 transactions per second.
built with TypeScript and Hono, compiled to a standalone Bun binary. uses Redis streams for durable message passing with at-least-once delivery guarantees.
the consumer group pattern ensures transactions are not lost if a validator crashes mid-processing. unacknowledged transactions are automatically reassigned to other consumers.
POST /transactions - submit a transactionGET /consume - consume batch for block productionPOST /acknowledge - acknowledge processed transactionsGET /pending - list pending transactionsGET /count - queue statisticsGET /health - service health checktana-queue runs as a standalone service accessed through the tana-api gateway. validators connect directly to consume transactions, while clients submit through the public API.
high-performance transaction ingestion gateway for the Tana blockchain.
tana-queue is the entry point for all transactions entering the blockchain. it provides an HTTP API for submitting transactions and manages a Redis-backed queue that validators consume during block production.
clients submit transactions via HTTP POST. the queue service validates the basic structure and pushes them to a Redis stream. validators then consume batches of transactions from the stream when producing blocks.
clients
|
v
POST /transactions
|
v
tana-queue
|
v
Redis stream
|
v
validators consume for block production
multiple queue instances can run behind a load balancer, all writing to the same Redis backend. this allows linear scaling of ingestion throughput.
load balancer
|
+----+----+----+
| | | |
q1 q2 q3 q4
| | | |
+----+----+----+
|
Redis
single instance handles 5,000-10,000 transactions per second. four instances can handle 20,000-40,000 transactions per second.
built with TypeScript and Hono, compiled to a standalone Bun binary. uses Redis streams for durable message passing with at-least-once delivery guarantees.
the consumer group pattern ensures transactions are not lost if a validator crashes mid-processing. unacknowledged transactions are automatically reassigned to other consumers.
POST /transactions - submit a transactionGET /consume - consume batch for block productionPOST /acknowledge - acknowledge processed transactionsGET /pending - list pending transactionsGET /count - queue statisticsGET /health - service health checktana-queue runs as a standalone service accessed through the tana-api gateway. validators connect directly to consume transactions, while clients submit through the public API.