MarginaliaSearch/code/common
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
..
config Make executor API talk GRPC (#75) 2024-02-08 13:01:12 +01:00
db (*) Fix broken test, clean up code 2024-01-24 12:50:41 +01:00
linkdb (test) Clean up test usage of migrations 2024-01-12 15:55:50 +01:00
model (*) Fix bug in EdgeDomain where it would permit domains with a trailing period, DNS style. 2023-12-29 16:36:01 +01:00
process (control) New GUI for exporting crawl data samples 2024-01-23 17:08:21 +01:00
renderer (search) Fix acknowledgement page for domain complaints rendering as plain text 2024-01-10 09:26:34 +01:00
service Make executor API talk GRPC (#75) 2024-02-08 13:01:12 +01:00
service-client Make executor API talk GRPC (#75) 2024-02-08 13:01:12 +01:00
service-discovery Make executor API talk GRPC (#75) 2024-02-08 13:01:12 +01:00
readme.md Update readme.md 2023-03-25 15:27:11 +01:00

Common

These are packages containing the basic building blocks for running a service as well as shared models.

  • db contains SQL code and some database-related utilities.
  • config contains some @Injectables.
  • renderer contains utility code for rendering website templates.
  • service is the shared base classes for main methods and web services.
  • service-client is the shared base class for RPC.
  • service-discovery contains tools that lets the services find each other.
  • process contains boiler plate for batch processes.