Keep track of changes and updates for Formance Stack v3.x
September 30, 2025
Version: v3.1
Component | Version |
---|---|
ledger | v2.3 |
payments | v3.0 |
wallets | v2.1 |
orchestration | v2.1 |
reconciliation | v2.1 |
Ledger
Ledger Service Process Separation
The ledger service has been split into two separate processes for improved performance. The existingledger serve
command now handles only HTTP requests, while a new ledger worker
command manages all stateful operations like block hashing and log exports.First Usage Filtering
Added a newfirst-usage
filter to the /volumes
endpoint, allowing you to filter volumes based on when they were first used.Optional Asynchronous Log Hashing
Added configurable async hash computation to improve ledger throughput. You can now choose between synchronous hashing (maximum tamper-proof security) and asynchronous block-based hashing (better performance with reduced attack window). This addresses the sequential bottleneck in hash chain computation while maintaining audit trail integrity.JSON transactions support for bulk streams
Bulk streams now support JSON transactions in addition to the existing Numscript format. The endpoint now acceptsapplication/json
content type for bulk operations.Pagination improvements
Introduced a newsort
query parameter to multiple list endpoints in the Ledger, allowing clients to specify sorting by field and order. It also adds support for paginating and sorting on additional fields, such as first_usage
for accounts and date
/id
for logs and transactions. The account schema is updated to expose a new firstUsage
timestamp field.Additional metadata support for transaction reverts
ThePOST /api/ledger/v2/{ledgerID}/transactions/{transactionID}/revert
endpoint now accepts optional user-provided metadata in the request. This allows for enhanced traceability and custom business logic while preserving the automatically-added com.formance.spec/state/reverts
metadata that identifies the original transaction being reverted.Big Integer String Serialization
Added a new rendering layer that allows big integers to be serialized as strings in API responses when requested via an HTTP header, providing better compatibility with clients that cannot handle large numeric values.Log exporting system for real-time streaming
Introduced a comprehensive log exporter system for real-time streaming of ledger transaction logs to external systems. The system includes configurable exporters (Elasticsearch, HTTP, ClickHouse, stdout), pipelines that connect ledgers to exporters with reliable state tracking, and APIs for pipeline management via/v2/{ledger}/pipelines
and direct export via /v2/{ledger}/logs/export
. Features include automatic retry logic, configurable batching, and persistent state to prevent data loss.Removed experimental features for data isolation
Experimental data isolation featuresINDEX_ADDRESS_SEGMENTS
and INDEX_TRANSACTION_ACCOUNTS
are no longer supported and have been removed.February 10, 2025
Version: v3.0
Component | Version |
---|---|
ledger | v2.2 |
payments | v3.0 |
wallets | v2.1 |
orchestration | v2.1 |
reconciliation | v2.1 |
Ledger
Stateless Ledger Service
The Ledger service is now fully stateless and can operate with multiple replicas without requiring nodes synchronization.Zero-Downtime Upgrades
Upgrades between versions now occur with zero downtime, ensuring a seamless transition and uninterrupted service.New Numscript Interpreter
The new numscript interpreter is now available in experimental mode (numscript used to be bundled in the ledger, but is now a separate, standalone library: https://github.com/formancehq/numscriptConfigurable Feature Disabling at the Bucket Level
You can now disable specific features on a per-ledger basis at the bucket level, allowing for better optimization based on your usage patterns.Enhanced Write Performance
Significant improvements have been made to write operations, resulting in a higher throughput of transactions per second.Improved Read Performance
Most endpoints have been optimized for faster read operations, leading to a more responsive system overall.Enhanced _bulk
Endpoint
The _bulk
endpoint now supports streaming, parallel processing, and atomic execution, providing greater flexibility and control over bulk processing, optimizing for performance, consistency, and reliability. For details, refer to Bulk processing.