ores.marketdata.service

Table of Contents

1. Diagram

ores.marketdata.service component diagram

Figure 1: ores.marketdata.service

2. Summary

ores.marketdata.service is the NATS service entrypoint for the market-data domain. It opens database and NATS connections, registers handlers from ores.marketdata.core, and runs the event loop.

3. Inputs

  • Configuration file: NATS server URL, PostgreSQL connection string.
  • NATS request messages for market-data operations.

4. Outputs

  • A running NATS service for market-data operations.

5. Entry points

  • src/main.cpp, src/app/, src/config/.

6. Dependencies

  • ores.marketdata.core, ores.marketdata.api, ores.logging, nats.c.

7. Build dependencies

What the shared profile cannot know, declared here rather than hand-edited into the generated build file. Each block is spliced into its generated file after the profile's baseline.

8. Options

The options this service takes beyond logging, NATS and the database. Codegen writes the member, its wire field, its command-line declaration and its assignment from each entry.

8.1. http_base_url

Base URL of the storage HTTP API, e.g. "http://localhost:8080".

8.2. tick_writer_user

The role that copies ticks to the tick table. It connects to the database of @c database. Empty means that ticks are not copied.

8.3. tick_writer_password

Password of the tick writer role.

9. See also

10. Test dependencies

The suites link what the profile cannot know about.

target_link_libraries(${lib_target_name}
    PUBLIC
        ores.service.lib
        ores.security.lib
        ores.marketdata.core.lib
        ores.refdata.core.lib
        ores.nats.lib
        ores.database.lib
        ores.utility.lib
        ores.telemetry.core.lib
        ores.eventing.core.lib
        ores.iam.client.lib
        ores.analytics.quant.lib
        ores.inbox.api.lib
        ores.inbox.core.lib)
target_link_libraries(${tests_target_name}
    PRIVATE
        ${lib_target_name}
        ores.utility.lib
        ores.testing.lib
        ores.logging.lib
        ores.iam.api.lib
        ores.iam.core.lib
        ores.inbox.api.lib
        ores.inbox.core.lib
        Catch2::Catch2
        faker-cxx::faker-cxx
        Threads::Threads)

Emacs 29.3 (Org mode 9.6.15)