# RPC Examples (/sdks/csharp/how-to/rpc)



Commands and queries: request–reply, timeouts, groups, and caching.

[RPC getting started →](/learn/rpc/getting-started)

<Cards>
  <Card title="Send Command" href="/sdks/csharp/tutorials/command-send">
    Send a command and wait for response
  </Card>

  <Card title="Handle Command" href="/sdks/csharp/how-to/rpc/command-handle">
    Register a handler for incoming commands
  </Card>

  <Card title="Command Timeout" href="/sdks/csharp/how-to/rpc/command-timeout">
    Handle command execution timeouts
  </Card>

  <Card title="Command Group" href="/sdks/csharp/how-to/rpc/command-group">
    Load-balance commands across handlers
  </Card>

  <Card title="Send Query" href="/sdks/csharp/tutorials/query-send">
    Send a query and receive data response
  </Card>

  <Card title="Handle Query" href="/sdks/csharp/how-to/rpc/query-handle">
    Register a handler for incoming queries
  </Card>

  <Card title="Cached Query" href="/sdks/csharp/how-to/rpc/query-cached">
    Use query response caching
  </Card>

  <Card title="Query Group" href="/sdks/csharp/how-to/rpc/query-group">
    Load-balance queries across handlers
  </Card>
</Cards>
