Skip to content

API design based on Google's protocol buffers for the systems relying on microservice architecture principles

License

Notifications You must be signed in to change notification settings

pananton/busrpc-spec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Busrpc

Busrpc is an RPC framework designed with microservice architecture principles in mind. It relies on a generalized message bus/queue/broker (for example, NATS or RabbitMQ) as a transport layer and protocol buffers as message format.

The framework consists of the following components:

  • Technical documentation, namely busrpc API specification, bus-dependent API specializations and a style guide for an API protobuf files
  • Template busrpc.proto file, which contains definitions of the basic busrpc protobuf types and custom options
  • Command-line development tool for a busrpc microservice developers
  • Bus-dependent libraries for a busrpc microservice development
  • Bus-dependent clients for testing/observing running busrpc backends

An example of busrpc API for a simple chat application backend can be found in the example/ directory.

Libraries

Currently no client libraries designed specifically for busrpc APIs exist, which means that you will probably implement one for your platform determined by a combination of programming language and particular message bus/queue/broker. It's usually not a big deal, because you will probably use some client library from the message bus/queue/broker developer (for example, see here for NATS client libraries or here for RabbitMQ client libraries) and implement busrpc-specific wrappers over it. Contributions of such busrpc client libraries are highly appreciated!

Clients

Clients allow developers to test and observe running busprc backends and usually provide at least the following commands:

  • call - to call a busrpc method
  • impl - to implement a busrpc method
  • observe - to observe calls of busrpc methods

Currently no clients are provided. To be done.

Contributing

Any contributions are highly appreciated:

  • suggestions to the busrpc specification
  • specializations for various message bus/queue/broker techonologies
  • new commands for busrpc development tool
  • clients for testing/observing busrpc backends
  • busrpc client libraries

If you want to discuss/suggest some feature, create an issue in this repository.

If you want to contribute code to busprc development tool, fork it's repository and make your changes in a separate branch. When the changes are ready, create a pull request to the develop branch.

If you have implemented new busrpc client or library, create an issue in this repository with a link to your project and I will add it to the list.

About

API design based on Google's protocol buffers for the systems relying on microservice architecture principles

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published