Ignasi Marimon-Clos
Ignasi Marimon-Clos
After digging a bit more on the topic, I've found [a discussion](https://github.com/grpc/grpc-java/issues/7281) hinting the grpc-java client can support circuit breaking via `Interceptor`s (the discussion links to a [PoC in Kotlin...
The implementation based on an `Interceptor` (in #1118) is not competing with the [proposal](https://github.com/grpc/proposal/blob/master/A6-client-retries.md?rgh-link-date=2019-09-04T16%3A17%3A40Z) but an alternative available in simpler deployments (where not DNS or similar config delivery mechanisms exist).
Hmm, maybe another possible approach would be to [wrap the method invocations in the generated code](https://github.com/akka/akka-grpc/blob/eb2906fba10c83ac0eba1bc61a2eb8276db50507/codegen/src/main/twirl/templates/ScalaClient/Client.scala.txt#L89)? The generated code fora client has access to, for example, the `GrpcClientSettings`.
Related to https://github.com/akka/akka-http/issues/3772
@patriknw I've numbered the ideas in your original description to mention them more easily. ------ 4. reading certificates and secrets and [building the HttpsContext](https://doc.akka.io/docs/akka-http/current/server-side/server-https-support.html#using-https) (not in the tutorial)
> Lagom, as you know of course, already has this opportunity I don't think that's what @aklikic had in mind. Lagom supports running multiple service APIs in a single process....
> In parallel, we should consider fixing the servers on the interop tests so behaviors are more similar. Note, I suspect the reason why the interop server implemented using scala...
... and I think there are two problems: 1. codegen for scala server [fallbacks to `UNIMPLEMENTED`](https://github.com/akka/akka-grpc/blob/6656ff0415d557946e6f72d5ebe10c5ed4290baf/codegen/src/main/twirl/templates/ScalaServer/Handler.scala.txt#L103) but that only applied to `unimplemented_method`. 2. codegen for java server directly [falls back...
The `grpc/core` seems to [never use NOT_FOUND](https://grpc.github.io/grpc/core/md_doc_statuscodes.html) according to the note on the footer. So we may be fine falling back to `200 OK + grpc-status: 12` in both `service_unimplemented`...
A recent improvement on `ssl-play` is to also detect when the ALPN agent hasn't been downloaded yet and run an `sbt stage` to [force the download](https://github.com/playframework/akka-grpc-play-quickstart-scala/blob/master/ssl-play#L59-L74). It's quite a hack...