# NATS C Client with JetStream and Streaming support: EXPERIMENTAL - Microservices

Loading...
Searching...
No Matches
EXPERIMENTAL - Microservices

## Modules

| Types
| Callbacks
| Public structs
| Public constants
| Functions

## Detailed Description

Warning
  EXPERIMENTAL FEATURE! We reserve the right to change the API without necessarily bumping the major version of the library.

### NATS Microservices.

Microservices can expose one or more request-response endpoints that process incoming NATS messages.

Microservices are created by calling micro_AddService, and configured by passing a microServiceConfig to it. Many microservices can share a single connection to a NATS server.

Once created, a microservice will subscribe to all endpoints' subjects and associate them with the configured handlers. It will also subscribe to and service monitoring subjects for service-specific pings, metadata, and statistics requests. The endpoint subscriptions are created with a queue group, so that incoming requests are automatically load-balanced across all running instances of a microservice. The monitoring subscriptions are not groupped, each service instance receives and responds to all monitoring requests.

Once created, the microservice is asyncronous, message handlers and other callbacks will be invoked in separate threads. No further action is needed. Your program can use microService_Stop, microService_IsStopped to control the execution of the service.