# /// [Mongo service sample - static config]
# yaml
components_manager:
    components:
        mongo-tr:     # Matches component registration and component retrieval strings
            dbconnection: mongodb://localhost:27217/admin
 
        dns-client:                     # Asynchronous DNS component
            fs-task-processor: fs-task-processor
 
        handler-translations:
            path: /v1/translations
            method: GET,PATCH
            task_processor: main-task-processor
 
        server:
            # ...
# /// [Mongo service sample - static config]
            listener:                 # configuring the main listening socket...
                port: 8090            # ...to listen on this port and...
                task_processor: main-task-processor    # ...process incoming requests on this task processor.
        logging:
            fs-task-processor: fs-task-processor
            loggers:
                default:
                    file_path: '@stderr'
                    level: debug
                    overflow_behavior: discard  # Drop logs if the system is too busy to write them down.
 
        tracer:                           # Component that helps to trace execution times and requests in logs.
            service-name: mongo-service   # "You know. You all know exactly who I am. Say my name. " (c)
 
        dynamic-config:                      # Dynamic config storage options, do nothing
            fs-cache-path: ''
        dynamic-config-fallbacks:            # Load options from file and push them into the dynamic config storage.
            fallback-path: /etc/mongo_service/dynamic_config_fallback.json
    coro_pool:
        initial_size: 500             # Preallocate 500 coroutines at startup.
        max_size: 1000                # Do not keep more than 1000 preallocated coroutines.
 
    task_processors:                  # Task processor is an executor for coroutine tasks
 
        main-task-processor:          # Make a task processor for CPU-bound coroutine tasks.
            worker_threads: 4         # Process tasks in 4 threads.
            thread_name: main-worker  # OS will show the threads of this task processor with 'main-worker' prefix.
 
        fs-task-processor:            # Make a separate task processor for filesystem bound tasks.
            thread_name: fs-worker
            worker_threads: 4
 
    default_task_processor: main-task-processor