-
Notifications
You must be signed in to change notification settings - Fork 0
Blueprint
###What exactly is the blueprint?
The blueprint is the contract between the client and the microservices. A platform is defined by a blueprint and a set of protobufs. The blueprint uses a custom IDL that makes it easy for humans and computers to read and process.
###How is the blueprint used?
- The client compiler and the microservice compiler are able to read a blueprint and generate libraries.
- The blueprint can be parsed and documentation can be automatically generated.
- A developer tasked with making changes to a microservice that someone else developed, can quickly see how the microservice interacts with the client by looking at the blueprint.
###History of the blueprint
The blueprint was originally developed as a way to write down all the microservices in a simple format that was both easy to read by a human, and easy to parse by a computer. The client compiler could input a blueprint along with a set of protobufs and output a client library.
Shortly after we had a working client compiler, we realized that the client compiler could take the blueprint and generate documentation that it would return with the compiled client library. As an added bonus, we also realized the client compiler could generate sample code for each microservice and add it to the documentation. This was huge because it saved us from having to manually maintain documentation. We could now automatically generate documentation in markdown format and commit it to github.
It's envisioned that the blueprint can be a tremendous aid in the API-first approach to defining services.