# Introduction

> NYXDB is a SQL database that keeps exact current and versioned state and maintains derived results from every committed write.

NYXDB is a SQL database whose tables keep exact current and
versioned state, and whose transformations, materialized views and streaming
queries are maintained continuously from every committed write.

## Choose your path

- [Get started](https://nyxdb.io/docs/getting-started/) — What the getting-started guide covers and your first queries.
- [Capabilities](https://nyxdb.io/docs/capabilities/) — Everything NYXDB provides, in one place.
- [Concepts](https://nyxdb.io/docs/concepts/) — Tables, attribute groups, versioned state, transformations, PSI and streaming reads.
- [SQL reference](https://nyxdb.io/docs/sql/) — Every statement, with examples over the same two tables.
- [Functions](https://nyxdb.io/docs/functions/) — The function reference, generated from the function catalog.
- [Drivers and integrations](https://nyxdb.io/docs/drivers/) — HTTP routes, the WebSocket session, the clients and the tools that reach a node.
- [Operations](https://nyxdb.io/docs/operations/) — Deployment, system relations, governance and the operator pages.
- [Guides](https://nyxdb.io/docs/guides/) — End-to-end guides: live dashboards, feature stores, audits over history and migrations.

## What NYXDB provides

- **Three table modes.** `MODE APPEND` keeps every row, `MODE UPSERT` keeps the
  latest row per primary key, and `MODE VERSIONED` keeps the latest row plus
  every accepted version. See [Tables](/docs/concepts/tables).
- **Attribute groups.** One keyed row can be split into independently written
  column groups, each with its own ordering. See
  [Attribute groups](/docs/concepts/attribute-groups).
- **Declared ordering and point-in-time reads.** `VALID BY` and `REVISION BY`
  choose the current winner per key, and `AS OF COMMIT` reads a past commit. See [Versioned tables](/docs/concepts/versioned-tables).
- **Transformations and materialized views.** `CREATE TRANSFORMATION` writes a
  continuously maintained result into an existing table; materialized views keep
  an engine-owned result. See [Transformations](/docs/concepts/transformations).
- **Streaming reads.** `STREAM SELECT` returns one snapshot and then exact
  changes over a WebSocket session. See
  [Streaming reads](/docs/concepts/streaming-reads).
- **Transactions and replication.** `BEGIN` … `COMMIT` groups statements
  atomically, and tablets are replicated across nodes with automatic failover.
  See [Transactions](/docs/sql/transactions).
- **Users, API keys and federation.** Password and API-key logins issue
  short-lived bearers, and one instance can read another's tables as external
  relations. See [Authentication](/docs/concepts/authentication) and
  [Federation](/docs/concepts/federation).

---

Source: https://nyxdb.io/docs/
