All Projects
Backend

Multi-Connector Service — REST · GraphQL · SOAP · gRPC

One business service exposed through four communication styles at once — REST, GraphQL, SOAP and gRPC — then consumed by a second microservice over REST (OpenFeign) and gRPC. A side-by-side study of API protocols on the same Customer domain.

4
Protocols exposed
H2
Provider store
Protobuf
gRPC contract
Apache CXF
SOAP stack
Approach

Expose one Customer domain over REST/GraphQL/SOAP/gRPC; consume it via Feign and a gRPC stub

Tech Stack
Java 17Spring Boot 3.1gRPCProtocol BuffersGraphQLSOAP (Apache CXF)OpenFeignH2
Keywords
RESTGraphQLSOAPgRPCProtocol BuffersApache CXFOpenFeignSpring Boot
Deep Dive

A protocol-comparison project: the same Customer domain is published over four connectors at once, then consumed by a second service — ideal for understanding the trade-offs between REST, GraphQL, SOAP and gRPC.

Architecture

┌──────────────────────────────────────────┐
│  customer-data-service  (provider, H2)     │
│  ├── 🟢 REST     CustomerRestController     │ + Swagger UI
│  ├── 🔵 GraphQL  CustomerGraphQLController  │ schema.graphqls
│  ├── 🟠 SOAP     CustomerSoapService        │ Apache CXF
│  └── 🟣 gRPC     CustomerGrpcService        │ CustomerService.proto
└───────────────┬───────────────┬────────────┘
                │ REST (Feign)   │ gRPC (stub)
                ▼                ▼
        ┌──────────────────────────────┐
        │  account-data-service (client)│
        └──────────────────────────────┘

What it shows

  • The same entity served four ways → directly comparable controllers/contracts
  • gRPC contract defined in CustomerService.proto (Protocol Buffers); SOAP via Apache CXF
  • Consumer demonstrates two integration modes: OpenFeign (REST) and a gRPC stub client
  • Single in-memory H2 store backing every connector