---
title: "Overview: Aerospike C# client"
description: "Overview of Aerospike C# client features: sync and async APIs, batch and transaction operations, queries, UDFs, and observability."
---

# Overview: Aerospike C# client

> For the complete documentation index see: [llms.txt](https://aerospike.com/docs/llms.txt)
> 
> All documentation pages available in markdown.

## Feature highlights

**Execution models:**

-   Synchronous client: Blocking operations through `AerospikeClient` with connection pooling per server node. See [Connecting](https://aerospike.com/docs/develop/client/csharp/connect).
-   Asynchronous client: Non-blocking operations through `AsyncClient` using listener callbacks and a thread pool with non-blocking sockets. See [Asynchronous API](https://aerospike.com/docs/develop/client/csharp/async). `AsyncClient` inherits from `AerospikeClient`, so sync commands remain available.
-   Thread-safe: Share one client instance per cluster across application threads. See [Best practices](https://aerospike.com/docs/develop/client/csharp/best-practices).

**Advanced data operations:**

-   Batch protocol: Combine reads, writes, deletes, and UDF calls in [batch operations](https://aerospike.com/docs/develop/client/csharp/usage/multi/batch).
-   Transactions: Group create, update, read, and delete steps in [multi-record transactions](https://aerospike.com/docs/develop/client/csharp/usage/multi/transactions) (C# client 8.0.0 and later, Database 8.0.0 and later, [strong-consistency namespace](https://aerospike.com/docs/database/manage/namespace/consistency)).
-   Query types: [Primary-index](https://aerospike.com/docs/develop/client/csharp/usage/multi/queries/primary), [secondary-index](https://aerospike.com/docs/develop/client/csharp/usage/multi/queries/secondary), and [background](https://aerospike.com/docs/develop/client/csharp/usage/multi/queries/background) queries.

**Policy and expression enhancements:**

-   Policies: Tune timeouts, retries, consistency, and write behavior with [client policies](https://aerospike.com/docs/develop/client/csharp/policies).
-   Filter expressions: Conditional reads and writes with [expressions](https://aerospike.com/docs/develop/client/csharp/usage/atomic/expressions).
-   Bin operations: Atomic single- and multi-bin updates with [Operate](https://aerospike.com/docs/develop/client/csharp/usage/atomic/multi).

**Data model improvements:**

-   Document model: Store and query JSON-like documents using [Map bins](https://aerospike.com/docs/develop/client/csharp/usage/document/create) and [secondary indexes on nested values](https://aerospike.com/docs/develop/client/csharp/usage/document/sindex).
-   Type support: Aerospike [scalar and collection data types](https://aerospike.com/docs/develop/client/csharp/data-types), including Lists, Maps, HyperLogLog, and geospatial bins.

**Operations and observability:**

-   Metrics: Collect standard and extended client metrics programmatically or through [Dynamic Client Configuration](https://aerospike.com/docs/develop/learn/dynamic-client-config/) (C# client 8.1.0+).
-   Security: Connect with TLS and [mutual TLS (mTLS)](https://aerospike.com/docs/develop/client/csharp/mtls). See [Connecting](https://aerospike.com/docs/develop/client/csharp/connect).

See the [release notes](https://github.com/aerospike/aerospike-client-csharp/releases) for version history.

## Ready to get started?

Quickstart

Check out the Aerospike client Quickstart for installation instructions and query examples.

[Quickstart →](https://aerospike.com/docs/database/quick-start)

Best practices

Already familiar with the C# client? The best practices guide can help you optimize for performance and reliability.

[Best practices →](https://aerospike.com/docs/develop/client/csharp/best-practices)

Error handling

Actionable errors with recovery suggestions. Know exactly what went wrong and how to fix it.

[Error handling →](https://aerospike.com/docs/develop/client/csharp/error-handling)

Usage examples

Want to dive straight into the API? We have usage examples for all the basic CRUD operations.

[Usage examples →](https://aerospike.com/docs/develop/client/csharp/usage/atomic/create)