loopbackio / loopbackio/loopback-next

Documentation: Creating and communicating with microservices.

Open
#6,329 1 comment 3 reactions 0 assignees View on GitHub
Docs
Dominant language
TypeScript
Stars
5.1k
Forks
1.1k
Avg merge
2d 21h
Merged PRs (30d)
27

Description

User Story
=======
There are multiple ways to set up microservices:
- Have a public facing API Gateway responsible for authentication, that then acts as a proxy for internal microservices, or which can have orchestration logic on top of their responses.
- Have many public facing services- one responsible for the process of authentication and the frontends are responsible for knowing.

There are also multiple ways to perform communication:
- Loopback 4 supports creating an OpenAPI JSON based datasource when using `lb4 service`.
- HTTP REST
- rpc, gRPC, redis/socket notifications.

There are different ways to organize the source code:
- A monorepository, using something like lerna to manage versioning and publishing.
- Separate repositories managed by different teams.

It would be great to have documentation and examples that could cover these cases. Example:
- Creating a loopback4 microservice as a REST Server that can expose an `openapi.json` file, and a loopback4 api gateway responsible for authentication and consuming those microservices.
- Creating a loopback4 microservice as a gRPC server that can publish proto files (to a private repository, or just on github for consumption), and a loopback4 api gateway responsible for authenticating and consuming those microservices.
- Workflows for maintaining multiple services with minimal manual code intervention.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing LoopBack 4 documentation for `lb4 service` and OpenAPI JSON datasources. Define the scope for examples covering REST and gRPC microservices, API gateways, authentication, service organization, and multi-service workflows. Done means the selected cases have complete documentation and runnable examples, but the issue does not identify files or tests to update.

Written by the indexing model from the issue text.

Assessment

Tech stack
grpc, nodejs, openapi, redis, typescript
Domain
backend-api-design, distributed-systems, documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.