Skip to content

Commit

Permalink
Merge 283e086 into e074210
Browse files Browse the repository at this point in the history
  • Loading branch information
goccy committed Dec 27, 2023
2 parents e074210 + 283e086 commit 5a8b638
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 27 deletions.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ A clear and concise description of what the bug is.
- [ ] protoc-gen-grpc-federation
- [ ] grpc-federation-linter
- [ ] grpc-federation-language-server
- [ ] grpc-federation-generator
- [ ] others

**To Reproduce**
Expand Down
3 changes: 0 additions & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
## NOTE

Currently, we do not accept pull requests from anyone other than the development team. Please report feature addition requests or bug fix requests via [Issues](https://github.com/kouzoh/grpc-federation/issues).
25 changes: 1 addition & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,10 @@

[![Test](https://github.com/mercari/grpc-federation/actions/workflows/test.yml/badge.svg)](https://github.com/mercari/grpc-federation/actions/workflows/test.yml)
[![GoDoc](https://godoc.org/github.com/mercari/grpc-federation?status.svg)](https://pkg.go.dev/github.com/mercari/grpc-federation?tab=doc)

[![Buf](https://img.shields.io/badge/Buf-docs-blue)](https://buf.build/mercari/grpc-federation)

gRPC Federation is a mechanism to automatically generate a BFF (Backend for frontend) server that aggregates and returns the results of gRPC protocol based microservices by writing Protocol Buffer's option.

> [!WARNING]
> gRPC Federation is still in alpha version. Please do not use it in production, as the design may change significantly.
# Motivation

Consider a system with a backend consisting of multiple microservices.
Expand Down Expand Up @@ -69,23 +66,6 @@ By using the gRPC Federation, it is possible to know which services the BFF depe

In addition, since the gRPC Federation provides the functionality to obtain dependencies as a library in Go, it is possible to automatically obtain service dependencies simply by statically analyzing proto file. This is very useful for various types of analysis and automation.

# Philosophy

## 1. gRPC method call exists to create a response message

Normally, the response message of a gRPC method exists as a result of the processing of the gRPC method, so the implementer's concern is "processing content" first and "processing result" second.

The gRPC Federation focuses on the "processing result" and considers that the gRPC method is called to create a response to the message.

Therefore, what you must do with gRPC Federation is to write dedicated options in those messages to create response messages for each of the Federation Service methods.

## 2. For every message, there is always a method that returns that message

Every message defined in Protocol Buffers has a method to return it. Therefore, it is possible to link message and method.


With these, we believe we can implemente the Federation Service by defining the message dependencies to create a response message and map them to the method definition.

# Installation

There are currently two ways to use gRPC Federation.
Expand Down Expand Up @@ -219,9 +199,6 @@ grpc-federation-generator -w

# Contribution

> [!IMPORTANT]
> Currently, we do not accept pull requests from anyone other than the development team. Please report feature requests or bug fix requests via Issues.
Please read the CLA carefully before submitting your contribution to Mercari. Under any circumstances, by submitting your contribution, you are deemed to accept and agree to be bound by the terms and conditions of the CLA.

https://www.mercari.com/cla/
Expand Down

0 comments on commit 5a8b638

Please sign in to comment.