# yaml
components_manager:
    components:
        logging:
            fs-task-processor: fs-task-processor
            loggers:
                default:
                    file_path: '@stderr'
                    level: debug
                    overflow_behavior: discard
 
        grpc-auth-server:
 
        grpc-auth-client:
 
        # Creates gRPC clients
# /// [gRPC middleware sample - static config client middleware]
        # yaml
        grpc-client-factory:
            task-processor: grpc-blocking-task-processor
            channel-args: {}
            middlewares:
              - grpc-auth-client
# /// [gRPC middleware sample - static config client middleware]
 
        # Our wrapper around the generated client for GreeterService
        greeter-client:
            # The service endpoint (URI). We talk to our own service,
            # which is kind of pointless, but works for an example
            endpoint: '[::1]:8091'
 
        # Common configuration for gRPC server
        grpc-server:
            # The single listening port for incoming RPCs
            port: 8091
            completion-queue-count: 3
 
        # Our GreeterService implementation
# /// [gRPC middleware sample - static config server middleware]
        # yaml
        greeter-service:
            task-processor: main-task-processor
            greeting-prefix: Hello
            middlewares:
              - grpc-auth-server
# /// [gRPC middleware sample - static config server middleware]
 
        # In this example, the tests still communicate with the microservice
        # using HTTP, so we still need an HTTP server and an HTTP handler.
        server:
            listener:
                port: 8092
                task_processor: main-task-processor
 
        greeter-http-handler:
            path: /hello
            method: POST
            task_processor: main-task-processor
 
        testsuite-support:
 
    default_task_processor: main-task-processor  # Task processor in which components start.
 
    task_processors:
        grpc-blocking-task-processor:  # For blocking gRPC channel creation
            worker_threads: 2
            thread_name: grpc-worker
        main-task-processor:           # For non-blocking operations
            worker_threads: 8
        fs-task-processor:             # For blocking filesystem operations
            worker_threads: 2