Skip to content

Latest commit

 

History

History
41 lines (23 loc) · 2.84 KB

README.md

File metadata and controls

41 lines (23 loc) · 2.84 KB

Message-Streams

Build

Message-Streams (RSocket-JVM) / GRPC interop example

This example demonstrates how Message-Streams services from jauntsdn/RSocket-JVM interoperate with each other over multiple transports (tcp, unix sockets, websockets/http2) & with GRPC, http/json over http2. It also demonstrates how Message-Streams/RPC services may be decoupled from RSocket-JVM runtime (this includes transports, metrics, load estimators/circuit breakers).

Message-Streams is very fast GRPC-like & GRPC-compatible services on JVM with rich streaming models.

Each service & its RPC client/server bindings have API of different nature: grpc-stub API(StreamObserver), CompletableFuture, or flavor of reactive: smallrye-mutiny, rxjava3, reactor-project.

Example application is comprised of 5 Message-Streams services (RSocket-JVM runtimes are stripped on this branch), plus GRPC & http/json clients:

  • Farmer service (Message-Streams-RPC-reactor + TCP transport)

  • Recipes service (Message-Streams-RPC-futures + TCP transport)

  • Roundsman service (Message-Streams-RPC-mutiny + WEBSOCKET-HTTP2 transport)

  • Chef service (Message-Streams-RPC-grpc + UNIX transport)

  • Kitchen service (Message-Streams-RPC-rxjava + GRPC transport)

  • Gourmet client (GRPC-java)

  • Supervisor client (http/json)

services

Build

./gradlew

Regenerate RPC client/service stubs (linux, windows(x86) only)

./gradlew clean build -PgenerateProto=true