1. Installation

Maven

pom.xml
<dependency>
    <groupId>io.orbit.ledger</groupId>
    <artifactId>Orbit-ledger</artifactId>
    <version>1.0.0</version>
</dependency>

Gradle

build.gradle
implementation 'io.orbit.ledger:Orbit-ledger:1.0.0'

2. Basic Usage

QuickStart.java
import io.orbit.ledger.api.OrbitLedger;

public class QuickStart {
    public static void main(String[] args) {
        OrbitLedger Orbit = OrbitLedger.builder()
            .onRelease(result -> {
                System.out.println("Account: " + result.key());
                System.out.println("Delta: " + result.delta());
            })
            .build();

        Orbit.start();

        Orbit.credit("ACC-001", 100_000);
        Orbit.debit("ACC-001", 30_000);
        Orbit.credit("ACC-001", 50_000);

        Orbit.release("ACC-001");
        Orbit.shutdown();
    }
}
💡 Non-blocking by Design

The credit() and debit() methods return immediately. Use release() when you need to force a synchronous batch commit.

3. Understanding the Output

Field Type Description
key() String The account/entity identifier
delta() long Net change (sum of credits - debits)
runningBalance() Long Final balance after this batch
eventCount() int Number of events in this batch
events() List<LedgerEvent> Individual events with sequence numbers

4. Next Steps