Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(cacheservice): use ZIO (DEV-546) #2022

Merged
merged 47 commits into from Apr 12, 2022
Merged
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
c603d38
refactor(cache): remove service from name
subotic Mar 12, 2022
0a5d5a2
refactor(cacheservice): inmem (ongoing)
subotic Mar 13, 2022
001d594
refactor(cacheservice): inmem (ongoing)
subotic Mar 13, 2022
72e7c3f
Merge branch 'main' into wip/DEV-546-zio-fying-cache-service
subotic Mar 14, 2022
10277b8
chore(docs): add structurizr (c4)
subotic Mar 14, 2022
ba36160
refactor(cache): inmem get user
subotic Mar 17, 2022
56c9e03
Merge branch 'wip/DEV-546-zio-fying-cache-service' of github.com:dasc…
subotic Mar 17, 2022
9b11fde
Merge branch 'main' into wip/DEV-546-zio-fying-cache-service
subotic Mar 18, 2022
d89d667
refactor(cacheservice): in-mem version
subotic Mar 18, 2022
4ef9efd
refactor(cacheservice): redis version (ongoing)
subotic Mar 19, 2022
9340f21
refactor(cacheservice): add zio-config (ongoing)
subotic Mar 20, 2022
82376c2
refactor(cacheservice): redis implementation (ongoing)
subotic Mar 20, 2022
52188ea
Merge branch 'main' into wip/DEV-546-zio-fying-cache-service
subotic Mar 30, 2022
bb54fad
refactor(cacheservice): redis implementation (ongoing)
subotic Mar 30, 2022
f7c1938
refactor(cacheservice): redis implementation (ongoing)
subotic Mar 30, 2022
e56f9f2
refactor(cacheservice): add redis implementation
subotic Mar 31, 2022
99f9739
refactor(cacheservice): add redis serialization implementation (ongoing)
subotic Mar 31, 2022
90b8672
refactor: after spartan session (ongoing)
subotic Mar 31, 2022
8114fa1
refactor(cacheservice): remove actor
subotic Apr 1, 2022
6cb9c9b
refactor(cacheservice): fix tests (ongoing)
subotic Apr 1, 2022
fc74215
Merge branch 'main' into wip/DEV-546-zio-fying-cache-service
subotic Apr 1, 2022
39d0ec6
build: fix after merge
subotic Apr 1, 2022
59abb36
refactor(cacheservice): fix tests
subotic Apr 3, 2022
c2514ec
Merge branch 'main' into wip/DEV-546-zio-fying-cache-service
subotic Apr 3, 2022
df916c6
refactor(cacheservice): add Redis Testcontainers layer
subotic Apr 6, 2022
6805d68
refactor(cacheservice): moving runtime initialization to main
subotic Apr 6, 2022
e7606f0
refactor(cacheservice): moving runtime initialisation back where it was
subotic Apr 6, 2022
faa6ffd
docs: add ADR record
subotic Apr 6, 2022
9f9e7d5
chore(deps): bump zio libraries
subotic Apr 6, 2022
d2cbf3f
Merge branch 'main' into wip/DEV-546-zio-fying-cache-service
subotic Apr 6, 2022
3e20985
chore(deps): bump zio libraries
subotic Apr 6, 2022
1275169
chore(deps): bump zio libraries
subotic Apr 6, 2022
aeb14d7
chore: remove unneeded file
subotic Apr 8, 2022
578f837
Merge branch 'main' into wip/DEV-546-zio-fying-cache-service
subotic Apr 8, 2022
97fcb82
refactor(cacheservice): ziofy redis testcontainers
subotic Apr 8, 2022
fa23c2d
cleanup
subotic Apr 8, 2022
12ae1e8
fix redis test container
subotic Apr 8, 2022
c633f10
fix redis test container
subotic Apr 8, 2022
c3c7cd3
remove metrics logging
subotic Apr 9, 2022
3edbbb7
Update webapi/src/main/scala/org/knora/webapi/store/cacheservice/Cach…
subotic Apr 9, 2022
c1b0a82
Update webapi/src/main/scala/org/knora/webapi/store/cacheservice/Cach…
subotic Apr 9, 2022
a68c389
Update webapi/src/main/scala/org/knora/webapi/store/cacheservice/Cach…
subotic Apr 9, 2022
d9e3351
Update docs/architecture/decisions/0002-change-cache-service-manager-…
subotic Apr 9, 2022
51ea313
cleanup
subotic Apr 9, 2022
b38d829
Merge branch 'wip/DEV-546-zio-fying-cache-service' of github.com:dasc…
subotic Apr 9, 2022
ad9f3ca
bumping dependencies
subotic Apr 9, 2022
b04f9c1
cleanup
subotic Apr 10, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions .adr-dir
@@ -0,0 +1 @@
docs/architecture/decisions
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -18,6 +18,8 @@ webapi-it
webapi-test
upgrade/project
sipi/test
/docs/architecture/.structurizr
/docs/architecture/workspace.json

**/target/
*.aux
Expand All @@ -31,6 +33,7 @@ sipi/test
*.tdo
*.toc
*.bak
*.rdb
.sbtrc

dependencies.txt
Expand Down
2 changes: 1 addition & 1 deletion .scalafmt.conf
@@ -1,6 +1,6 @@
version = "2.7.5"
maxColumn = 120
align.preset = some
align.preset = most
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

now we going to have a lot of formatting noise

align.multiline = false
continuationIndent.defnSite = 2
assumeStandardLibraryStripMargin = true
Expand Down
5 changes: 5 additions & 0 deletions Makefile
Expand Up @@ -33,6 +33,11 @@ docs-install-requirements: ## install requirements
docs-clean: ## cleans the project directory
@rm -rf site/

.PHONY: structurizer
structurizer: ## starts the structurizer and serves c4 architecture docs
@docker pull structurizr/lite
@docker run -it --rm -p 8080:8080 -v $(CURRENT_DIR)/docs/architecture:/usr/local/structurizr structurizr/lite

#################################
# Docker targets
#################################
Expand Down
28 changes: 17 additions & 11 deletions build.sbt
Expand Up @@ -100,7 +100,7 @@ lazy val webapi: Project = Project(id = "webapi", base = file("webapi"))
.settings(buildSettings)
.enablePlugins(SbtTwirl, JavaAppPackaging, DockerPlugin, GatlingPlugin, JavaAgent, RevolverPlugin, BuildInfoPlugin)
.settings(
webApiCommonSettings,
name := "webapi",
resolvers ++= Seq(
Resolver.bintrayRepo("hseeberger", "maven")
),
Expand All @@ -112,19 +112,19 @@ lazy val webapi: Project = Project(id = "webapi", base = file("webapi"))
.settings(
// add needed files to production jar
Compile / packageBin / mappings ++= Seq(
(rootBaseDir.value / "knora-ontologies" / "knora-admin.ttl") -> "knora-ontologies/knora-admin.ttl",
(rootBaseDir.value / "knora-ontologies" / "knora-base.ttl") -> "knora-ontologies/knora-base.ttl",
(rootBaseDir.value / "knora-ontologies" / "salsah-gui.ttl") -> "knora-ontologies/salsah-gui.ttl",
(rootBaseDir.value / "knora-ontologies" / "standoff-data.ttl") -> "knora-ontologies/standoff-data.ttl",
(rootBaseDir.value / "knora-ontologies" / "standoff-onto.ttl") -> "knora-ontologies/standoff-onto.ttl",
(rootBaseDir.value / "knora-ontologies" / "knora-admin.ttl") -> "knora-ontologies/knora-admin.ttl",
(rootBaseDir.value / "knora-ontologies" / "knora-base.ttl") -> "knora-ontologies/knora-base.ttl",
(rootBaseDir.value / "knora-ontologies" / "salsah-gui.ttl") -> "knora-ontologies/salsah-gui.ttl",
(rootBaseDir.value / "knora-ontologies" / "standoff-data.ttl") -> "knora-ontologies/standoff-data.ttl",
(rootBaseDir.value / "knora-ontologies" / "standoff-onto.ttl") -> "knora-ontologies/standoff-onto.ttl",
(rootBaseDir.value / "webapi" / "scripts" / "fuseki-repository-config.ttl.template") -> "webapi/scripts/fuseki-repository-config.ttl.template" // needed for initialization of triplestore
),
// use packaged jars (through packageBin) on classpaths instead of class directories for production
Compile / exportJars := true,
// add needed files to test jar
Test / packageBin / mappings ++= Seq(
(rootBaseDir.value / "webapi" / "scripts" / "fuseki-repository-config.ttl.template") -> "webapi/scripts/fuseki-repository-config.ttl.template", // needed for initialization of triplestore
(rootBaseDir.value / "sipi" / "config" / "sipi.docker-config.lua") -> "sipi/config/sipi.docker-config.lua"
(rootBaseDir.value / "sipi" / "config" / "sipi.docker-config.lua") -> "sipi/config/sipi.docker-config.lua"
),
// use packaged jars (through packageBin) on classpaths instead of class directories for test
Test / exportJars := true
Expand All @@ -140,12 +140,14 @@ lazy val webapi: Project = Project(id = "webapi", base = file("webapi"))
javaAgents += Dependencies.aspectjweaver,
fork := true, // run tests in a forked JVM
Test / testForkedParallel := false, // run forked tests in parallel
Test / parallelExecution := false, // run non-forked tests in parallel
Test / parallelExecution := false, // run non-forked tests in parallel
// Global / concurrentRestrictions += Tags.limit(Tags.Test, 1), // restrict the number of concurrently executing tests in all projects
Test / javaOptions ++= Seq("-Dconfig.resource=fuseki.conf") ++ webapiJavaTestOptions,
// Test / javaOptions ++= Seq("-Dakka.log-config-on-start=on"), // prints out akka config
// Test / javaOptions ++= Seq("-Dconfig.trace=loads"), // prints out config locations
Test / testOptions += Tests.Argument("-oDF") // show full stack traces and test case durations
Test / testOptions += Tests.Argument("-oDF"), // show full stack traces and test case durations
// add test framework for running zio-tests
Test / testFrameworks ++= Seq(new TestFramework("zio.test.sbt.ZTestFramework"))
)
.settings(
// prepare for publishing
Expand Down Expand Up @@ -189,8 +191,8 @@ lazy val webapi: Project = Project(id = "webapi", base = file("webapi"))
name,
version,
"akkaHttp" -> Dependencies.akkaHttpVersion,
"sipi" -> Dependencies.sipiImage,
"fuseki" -> Dependencies.fusekiImage
"sipi" -> Dependencies.sipiImage,
"fuseki" -> Dependencies.fusekiImage
),
buildInfoPackage := "org.knora.webapi.http.version"
)
Expand Down Expand Up @@ -219,6 +221,10 @@ lazy val webapiJavaTestOptions = Seq(
//"-XX:MaxMetaspaceSize=4096m"
)

//////////////////////////////////////
// DSP's new codebase
//////////////////////////////////////

lazy val apiMain = project
.in(file("dsp-api-main"))
.settings(
Expand Down
15 changes: 15 additions & 0 deletions docs/architecture/README.md
@@ -0,0 +1,15 @@
# C4 Model and ADRs

## Installation

```bash
$ brew install adr-tools
```

## Usage

Run the following command from the root directory to start the C4 model browser:

```bash
$ make structurizer
```
@@ -0,0 +1,19 @@
# 1. Record architecture decisions

Date: 2022-03-14

## Status

Accepted

## Context

We need to record the architectural decisions made on this project.

## Decision

We will use Architecture Decision Records, as [described by Michael Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions).

## Consequences

See Michael Nygard's article, linked above. For a lightweight ADR toolset, see Nat Pryce's [adr-tools](https://github.com/npryce/adr-tools).
@@ -0,0 +1,19 @@
# 2. Change Cache Service Manager from Akka-Actor to ZLayer

Date: 2022-04-06

## Status

Accepted

## Context

The `org.knora.webapi.store.cacheservice.CacheServiceManager` was implemented as an `Akka-Actor`.

## Decision

As part of the move from `Akka` to `ZIO`, it was decided that the `CacheServiceManager` and the whole implementation of the in-memory and Redis backed cache is refactored using ZIO.

## Consequences

The usage from other actors stays the same. The actor messages and responses didn't change.
subotic marked this conversation as resolved.
Show resolved Hide resolved
21 changes: 21 additions & 0 deletions docs/architecture/workspace.dsl
@@ -0,0 +1,21 @@
workspace {

model {
user = person "User"
softwareSystem = softwareSystem "Software System"

user -> softwareSystem "Uses"
}

views {
systemContext softwareSystem "Diagram1" {
include *
autoLayout
}

theme default
}

!adrs decisions

}
Expand Up @@ -14,6 +14,6 @@ case class SchemaRepoLive() extends SchemaRepo {

}

object SchemaRepoLive extends (() => SchemaRepo) {
val layer: URLayer[Any, SchemaRepo] = (SchemaRepoLive.apply _).toLayer
object SchemaRepoLive {
val layer: URLayer[Any, SchemaRepo] = ZLayer.succeed(SchemaRepoLive())
}
Expand Up @@ -20,5 +20,5 @@ case class SchemaRepoTest() extends SchemaRepo {
}

object SchemaRepoTest extends (() => SchemaRepo) {
val layer: URLayer[Any, SchemaRepo] = (SchemaRepoTest.apply _).toLayer
val layer: URLayer[Any, SchemaRepo] = ZLayer.succeed(SchemaRepoTest())
}
125 changes: 70 additions & 55 deletions project/Dependencies.scala
Expand Up @@ -9,46 +9,56 @@ import sbt.Keys._
import sbt.{Def, _}

object Dependencies {

val fusekiImage = "daschswiss/apache-jena-fuseki:2.0.8" // should be the same version as in docker-compose.yml
val sipiImage = "daschswiss/sipi:3.5.0" // base image the knora-sipi image is created from
val sipiImage = "daschswiss/sipi:3.5.0" // base image the knora-sipi image is created from

// versions
val akkaHttpVersion = "10.2.9"
val akkaVersion = "2.6.19"
val jenaVersion = "4.4.0"
val metricsVersion = "4.0.1"
val scalaVersion = "2.13.8"
val ZioHttpVersion = "2.0.0-RC3"
val ZioPreludeVersion = "1.0.0-RC10"
val ZioVersion = "2.0.0-RC2"
val akkaHttpVersion = "10.2.9"
val akkaVersion = "2.6.19"
val jenaVersion = "4.4.0"
val metricsVersion = "4.0.1"
val scalaVersion = "2.13.8"
val ZioVersion = "2.0.0-RC4"
val ZioHttpVersion = "2.0.0-RC4"
val ZioJsonVersion = "0.3.0-RC3"
val ZioConfigVersion = "3.0.0-RC7"
val ZioSchemaVersion = "0.2.0-RC1-1"
val ZioLoggingVersion = "2.0.0-RC7"
val ZioZmxVersion = "2.0.0-RC4"
val ZioPreludeVersion = "1.0.0-RC12"

// ZIO - all Scala 3 compatible
val zio = "dev.zio" %% "zio" % ZioVersion
val zioHttp = "io.d11" %% "zhttp" % ZioHttpVersion
val zioPrelude = "dev.zio" %% "zio-prelude" % ZioPreludeVersion
val zioTest = "dev.zio" %% "zio-test" % ZioVersion
val zioTestSbt = "dev.zio" %% "zio-test-sbt" % ZioVersion
val zio = "dev.zio" %% "zio" % ZioVersion
val zioHttp = "io.d11" %% "zhttp" % ZioHttpVersion
val zioJson = "dev.zio" %% "zio-json" % ZioJsonVersion
val zioPrelude = "dev.zio" %% "zio-prelude" % ZioPreludeVersion
val zioLoggingSlf4j = "dev.zio" %% "zio-logging-slf4j" % ZioLoggingVersion
val zioConfig = "dev.zio" %% "zio-config" % ZioConfigVersion
val zioConfigMagnolia = "dev.zio" %% "zio-config-magnolia" % ZioConfigVersion
val zioConfigTypesafe = "dev.zio" %% "zio-config-typesafe" % ZioConfigVersion
val zioTest = "dev.zio" %% "zio-test" % ZioVersion
val zioTestSbt = "dev.zio" %% "zio-test-sbt" % ZioVersion

// akka
val akkaActor = "com.typesafe.akka" %% "akka-actor" % akkaVersion // Scala 3 compatible
val akkaHttp = "com.typesafe.akka" %% "akka-http" % akkaHttpVersion // Scala 3 incompatible
val akkaHttpCors = "ch.megard" %% "akka-http-cors" % "1.0.0" // Scala 3 incompatible
val akkaActor = "com.typesafe.akka" %% "akka-actor" % akkaVersion // Scala 3 compatible
val akkaHttp = "com.typesafe.akka" %% "akka-http" % akkaHttpVersion // Scala 3 incompatible
val akkaHttpCors = "ch.megard" %% "akka-http-cors" % "1.0.0" // Scala 3 incompatible
val akkaHttpSprayJson = "com.typesafe.akka" %% "akka-http-spray-json" % akkaHttpVersion // Scala 3 incompatible
val akkaSlf4j = "com.typesafe.akka" %% "akka-slf4j" % akkaVersion // Scala 3 compatible
val akkaStream = "com.typesafe.akka" %% "akka-stream" % akkaVersion // Scala 3 compatible
val akkaSlf4j = "com.typesafe.akka" %% "akka-slf4j" % akkaVersion // Scala 3 compatible
val akkaStream = "com.typesafe.akka" %% "akka-stream" % akkaVersion // Scala 3 compatible

// jena
val jenaText = "org.apache.jena" % "jena-text" % jenaVersion

// logging
val logbackClassic = "ch.qos.logback" % "logback-classic" % "1.2.11"
val scalaLogging = "com.typesafe.scala-logging" %% "scala-logging" % "3.9.4" // Scala 3 compatible
val logbackClassic = "ch.qos.logback" % "logback-classic" % "1.2.11"
val scalaLogging = "com.typesafe.scala-logging" %% "scala-logging" % "3.9.4" // Scala 3 compatible

// Metrics
val aspectjweaver = "org.aspectj" % "aspectjweaver" % "1.9.4"
val kamonCore = "io.kamon" %% "kamon-core" % "2.5.0" // Scala 3 compatible
val kamonScalaFuture = "io.kamon" %% "kamon-scala-future" % "2.1.5" // Scala 3 incompatible
val aspectjweaver = "org.aspectj" % "aspectjweaver" % "1.9.4"
val kamonCore = "io.kamon" %% "kamon-core" % "2.5.0" // Scala 3 compatible
val kamonScalaFuture = "io.kamon" %% "kamon-scala-future" % "2.1.5" // Scala 3 incompatible

// input validation
val commonsValidator =
Expand All @@ -61,50 +71,49 @@ object Dependencies {

// caching
val ehcache = "net.sf.ehcache" % "ehcache" % "2.10.9.2"
val jedis = "redis.clients" % "jedis" % "4.2.1"
val jedis = "redis.clients" % "jedis" % "4.2.1"

// serialization
val chill = "com.twitter" %% "chill" % "0.10.0" // Scala 3 incompatible

// other
val diff = "com.sksamuel.diff" % "diff" % "1.1.11"
val gwtServlet = "com.google.gwt" % "gwt-servlet" % "2.9.0"
val icu4j = "com.ibm.icu" % "icu4j" % "70.1"
val jakartaJSON = "org.glassfish" % "jakarta.json" % "2.0.1"
val jodd = "org.jodd" % "jodd" % "3.2.6"
val rdf4jClient = "org.eclipse.rdf4j" % "rdf4j-client" % "3.4.4"
val rdf4jShacl = "org.eclipse.rdf4j" % "rdf4j-shacl" % "3.4.4"
val saxonHE = "net.sf.saxon" % "Saxon-HE" % "11.3"
val scalaGraph = "org.scala-graph" %% "graph-core" % "1.13.1" // Scala 3 incompatible
val scallop = "org.rogach" %% "scallop" % "4.1.0" // Scala 3 compatible
val swaggerAkkaHttp = "com.github.swagger-akka-http" %% "swagger-akka-http" % "1.6.0" // Scala 3 incompatible
val titaniumJSONLD = "com.apicatalog" % "titanium-json-ld" % "1.2.0"
val xmlunitCore = "org.xmlunit" % "xmlunit-core" % "2.9.0"
val diff = "com.sksamuel.diff" % "diff" % "1.1.11"
val gwtServlet = "com.google.gwt" % "gwt-servlet" % "2.9.0"
val icu4j = "com.ibm.icu" % "icu4j" % "70.1"
val jakartaJSON = "org.glassfish" % "jakarta.json" % "2.0.1"
val jodd = "org.jodd" % "jodd" % "3.2.6"
val rdf4jClient = "org.eclipse.rdf4j" % "rdf4j-client" % "3.4.4"
val rdf4jShacl = "org.eclipse.rdf4j" % "rdf4j-shacl" % "3.4.4"
val saxonHE = "net.sf.saxon" % "Saxon-HE" % "11.3"
val scalaGraph = "org.scala-graph" %% "graph-core" % "1.13.1" // Scala 3 incompatible
val scallop = "org.rogach" %% "scallop" % "4.1.0" // Scala 3 compatible
val swaggerAkkaHttp = "com.github.swagger-akka-http" %% "swagger-akka-http" % "1.6.0" // Scala 3 incompatible
val titaniumJSONLD = "com.apicatalog" % "titanium-json-ld" % "1.2.0"
val xmlunitCore = "org.xmlunit" % "xmlunit-core" % "2.9.0"

// test
val akkaHttpTestkit = "com.typesafe.akka" %% "akka-http-testkit" % akkaHttpVersion // Scala 3 incompatible
val akkaStreamTestkit = "com.typesafe.akka" %% "akka-stream-testkit" % akkaVersion // Scala 3 compatible
val akkaTestkit = "com.typesafe.akka" %% "akka-testkit" % akkaVersion // Scala 3 compatible
val gatlingHighcharts = "io.gatling.highcharts" % "gatling-charts-highcharts" % "3.7.6"
val gatlingTestFramework = "io.gatling" % "gatling-test-framework" % "3.7.6"
val scalaTest = "org.scalatest" %% "scalatest" % "3.2.2" // Scala 3 compatible
val testcontainers = "org.testcontainers" % "testcontainers" % "1.16.3"
val akkaHttpTestkit = "com.typesafe.akka" %% "akka-http-testkit" % akkaHttpVersion // Scala 3 incompatible
val akkaStreamTestkit = "com.typesafe.akka" %% "akka-stream-testkit" % akkaVersion // Scala 3 compatible
val akkaTestkit = "com.typesafe.akka" %% "akka-testkit" % akkaVersion // Scala 3 compatible
val gatlingHighcharts = "io.gatling.highcharts" % "gatling-charts-highcharts" % "3.7.6"
val gatlingTestFramework = "io.gatling" % "gatling-test-framework" % "3.7.6"
val scalaTest = "org.scalatest" %% "scalatest" % "3.2.2" // Scala 3 compatible
val testcontainers = "org.testcontainers" % "testcontainers" % "1.16.3"

val webapiLibraryDependencies = Seq(
akkaActor,
akkaHttp,
akkaHttpCors,
akkaHttpSprayJson,
akkaHttpTestkit % Test,
akkaSlf4j % Runtime,
akkaSlf4j % Runtime,
akkaStream,
akkaStreamTestkit % Test,
akkaTestkit % Test,
chill,
akkaTestkit % Test,
commonsValidator,
diff,
ehcache,
gatlingHighcharts % Test,
gatlingHighcharts % Test,
gatlingTestFramework % Test,
gwtServlet,
icu4j,
Expand All @@ -116,7 +125,7 @@ object Dependencies {
kamonCore,
kamonScalaFuture,
logbackClassic % Runtime,
rdf4jClient % Test,
rdf4jClient % Test,
rdf4jShacl,
saxonHE,
scalaGraph,
Expand All @@ -129,8 +138,14 @@ object Dependencies {
titaniumJSONLD,
xmlunitCore % Test,
zio,
zioConfig,
zioConfigMagnolia,
zioConfigTypesafe,
zioHttp,
zioJson,
zioLoggingSlf4j,
zioPrelude,
zioTest % Test,
zioTest % Test,
zioTestSbt % Test
)

Expand All @@ -146,7 +161,7 @@ object Dependencies {
zioPrelude
)

val schemaRepoLibraryDependencies = Seq()
val schemaRepoLibraryDependencies = Seq()
val schemaRepoEventStoreServiceLibraryDependencies = Seq()
val schemaRepoSearchServiceLibraryDependencies = Seq()
val schemaRepoSearchServiceLibraryDependencies = Seq()
}