MarginaliaSearch/code/common
Viktor Lofgren 66c1281301 (zk-registry) epic jak shaving WIP
Cleaning out a lot of old junk from the code, and one thing lead to another...

* Build is improved, now constructing docker images with 'jib'.  Clean build went from 3 minutes to 50 seconds.
* The ProcessService's spawning is smarter.  Will now just spawn a java process instead of relying on the application plugin's generated outputs.
* Project is migrated to GraalVM
* gRPC clients are re-written with a neat fluent/functional style. e.g.
```channelPool.call(grpcStub::method)
              .async(executor) // <-- optional
              .run(argument);
```
This change is primarily to allow handling ManagedChannel errors, but it turned out to be a pretty clean API overall.
* For now the project is all in on zookeeper
* Service discovery is now based on APIs and not services.  Theoretically means we could ship the same code either a monolith or a service mesh.
* To this end, began modularizing a few of the APIs so that they aren't strongly "living" in a service.  WIP!

Missing is documentation and testing, and some more breaking apart of code.
2024-02-22 14:01:23 +01:00
..
config (zk-registry) epic jak shaving WIP 2024-02-22 14:01:23 +01:00
db Merge branch 'master' into service-discovery 2024-02-20 11:44:12 +01:00
linkdb (refac) Zookeeper for service-discovery, kill service-client lib (WIP) 2024-02-20 11:41:14 +01:00
model (refac) Zookeeper for service-discovery, kill service-client lib (WIP) 2024-02-20 11:41:14 +01:00
process (refac) Zookeeper for service-discovery, kill service-client lib (WIP) 2024-02-20 11:41:14 +01:00
renderer (refac) Zookeeper for service-discovery, kill service-client lib (WIP) 2024-02-20 11:41:14 +01:00
service (zk-registry) epic jak shaving WIP 2024-02-22 14:01:23 +01:00
service-discovery (zk-registry) epic jak shaving WIP 2024-02-22 14:01:23 +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.