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