A search request branching through service nodes
View source on GitHubB1Z0N/search-microservice

projectsystemswebdata

Search Microservice

Vert.x distributed-systems learning service.
  • Java
  • Vert.x
  • gRPC
  • Hazelcast
Date
January 2020
Status
Historical
Visibility
Public

A Vert.x starter pack I wrote for our university distributed-systems team — a working microservice skeleton, structured so the next person could read it top to bottom and understand how a Vert.x service hangs together.

The common part is two classes meant for reuse by inheritance: a Launcher and a MicroserviceVerticle carrying the infrastructure every service needs — service discovery, Hazelcast clustering, an HTTP server and async client, a circuit breaker, health checks.

The profiles part is a complete example service built on top of it. A gRPC endpoint serves user profiles over the Vert.x event bus, with custom message codecs for the config and profile types, and separate verticles for configuration, service discovery, the API server and the profile responder — all deployed together by a main verticle. A small client connects, asks for a profile, and prints the response; everything it needs to find the server comes from the same config.json the service reads.