Getting Started Overview

This overview explains what it means to get started with Asset Core and how to approach the system effectively.

Who this is for

Anyone new to Asset Core who wants to understand the minimal components required to run the system and send their first transaction.

What you will learn

  • The four essential components: write daemon, read daemon, commit log, and client
  • How data flows through the system
  • What “success” looks like for a first interaction

When to use this

Read this before attempting to run Asset Core locally or integrate it into your application. This overview provides the mental model needed to understand subsequent guides.

High-level structure

Asset Core uses a write/read split architecture with event sourcing as the source of truth:

┌──────────────┐        ┌──────────────┐
│ Write Daemon │        │ Read Daemon  │
│ POST /commit │        │ GET /read/*  │
└──────┬───────┘        └──────▲───────┘
       │                       │
       │ Events                │ Tail + Apply
       ▼                       │
   ┌───────────────────────────┴──┐
   │      Commit Log (Events)     │
   │   (sealed batches, durable)  │
   └──────────────────────────────┘

Write Daemon

The write daemon accepts HTTP POST requests to /v1/commit. It:

  • Validates incoming transactions
  • Executes operations against the runtime
  • Seals events into batches
  • Persists batches to the commit log

The write daemon is the only component that mutates state. It enforces single-writer semantics for determinism.

Read Daemon

The read daemon serves HTTP GET queries. It:

  • Tails the commit log for new batches
  • Applies events via deterministic replay
  • Publishes zero-copy snapshots
  • Reports freshness metadata

Queries return point-in-time projections with information about how recent the data is.

Commit Log

The commit log is the durable event store:

  • Append-only log of sealed event batches
  • Source of truth for all state
  • Enables deterministic replay for recovery
  • Supports checkpointing for fast startup

Both daemons interact with the same commit log, ensuring consistency.

Client

Any HTTP client can interact with Asset Core:

  • Send transactions to the write daemon
  • Query state from the read daemon
  • Use idempotency keys for safe retries

The Python SDK provides typed helpers, but raw HTTP works for any language.

The Goal

Getting started means:

  1. Running both daemons locally
  2. Sending a commit that creates a container and adds balance
  3. Reading back the state to confirm the commit was applied

This validates that your environment is working and gives you a foundation for more complex experiments.

Next steps