MarginaliaSearch/code/services-core
Viktor e8de468b0b
Make executor API talk GRPC (#75)
* (executor-api) Make executor API talk GRPC

The executor's REST API was very fragile and annoying to work with, lacking even basic type safety.  Migrate to use GRPC instead.  GRPC is a bit of a pain with how verbose it is, but that is probably a lesser evil.  This is a fairly straightforward change, but it's also large so a solid round of testing is needed...

The change set breaks out the GrpcStubPool previously residing in the QueryService, and makes it available to all clients.

ServiceId.name was also renamed to avoid the very dangerous clash with Enum.name().

The boilerplate needed for grpc was also extracted into a common gradle file for inclusion into the appropriate build.gradle-files.
2024-02-08 13:01:12 +01:00
..
assistant-service (*) install script for deploying Marginalia outside the codebase 2024-01-11 12:40:03 +01:00
control-service Make executor API talk GRPC (#75) 2024-02-08 13:01:12 +01:00
executor-service Make executor API talk GRPC (#75) 2024-02-08 13:01:12 +01:00
index-service (index-construction) Split repartition into two actions cont'd 2024-02-06 19:54:17 +01:00
query-service Make executor API talk GRPC (#75) 2024-02-08 13:01:12 +01:00
readme.md (refactor) Move search service into services-satellite 2023-10-09 13:40:01 +02:00

Core Services

The cores services constitute the main functionality of the search engine, relatively agnostic to the Marginalia application.

  • The index-service contains the indexes, it answers questions about which documents contain which terms.

  • The query-service Interprets queries and delegates work to index-service.

  • The control-service provides an operator's user interface, and is responsible for orchestrating the various processes of the system.

  • The assistant-service helps the search service with spelling suggestions other peripheral functionality.