CatgirlIntelligenceAgency/code/services-core/index-service/build.gradle
Viktor Lofgren 0307c55f9f (refac) Zookeeper for service-discovery, kill service-client lib (WIP)
To avoid having to either hard-code or manually configure service addresses (possibly several dozen), and to reduce the project's dependency on docker to deal with routing and discovery, the option to use [Zookeeper](https://zookeeper.apache.org/) to manage services and discovery has been added.

A service registry interface was added, with a Zookeeper implementation and a basic implementation that only works on docker and hard-codes everything.

The last remaining REST service, the assistant-service, has been migrated to gRPC.

This also proved a good time to clear out primordial technical debt from the root of the codebase.  The 'service-client' library has been taken behind the barn and given a last farewell.  It's replaced by a small library for managing gRPC channels.

Since it's no longer used by anything, RxJava has been removed as a dependency from the project.

Although the current state seems reasonably stable, this is a work-in-progress commit.
2024-02-20 11:41:14 +01:00

67 lines
2.1 KiB
Groovy

plugins {
id 'java'
id 'com.palantir.docker' version '0.35.0'
id 'application'
id 'jvm-test-suite'
}
application {
mainClass = 'nu.marginalia.index.IndexMain'
applicationName = 'index-service'
}
tasks.distZip.enabled = false
apply from: "$rootProject.projectDir/docker-service.gradle"
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}
dependencies {
implementation project(':code:common:config')
implementation project(':code:common:model')
implementation project(':code:common:db')
implementation project(':code:common:linkdb')
implementation project(':code:common:service')
implementation project(':code:api:index-api')
implementation project(':code:common:service-discovery')
implementation project(':code:libraries:array')
implementation project(':code:libraries:btree')
implementation project(':code:features-index:index-journal')
implementation project(':code:features-index:index-query')
implementation project(':code:features-index:index-forward')
implementation project(':code:features-index:index-reverse')
implementation project(':code:features-index:domain-ranking')
implementation project(':code:features-index:result-ranking')
implementation project(':third-party:commons-codec')
testImplementation project(path: ':code:services-core:control-service')
testImplementation project(':code:common:process')
implementation libs.bundles.slf4j
implementation libs.prometheus
implementation libs.notnull
implementation libs.guice
implementation libs.protobuf
implementation libs.bundles.httpcomponents
implementation libs.roaringbitmap
implementation libs.snakeyaml
implementation libs.spark
implementation libs.opencsv
implementation libs.trove
implementation libs.fastutil
implementation libs.bundles.gson
implementation libs.bundles.grpc
implementation libs.bundles.mariadb
testImplementation libs.bundles.slf4j.test
testImplementation libs.bundles.junit
testImplementation libs.mockito
}