Laminar generates your gRPC microservice with the required production-grade boilerplate code in GoLang. Laminar helps you to save a lot of development time and effort. All you need to do is just upload the three required files and the laminar will bless you with the microservice in a ZIP file. This can be extracted and run with some minor changes in configs. Someone with just the knowledge of SQL and GoLang can easily generate a gRPC microservice using Laminar!
While building a team at nurture.farm, Abinasha Karana was stuck in the familiar dilemma of having a modern stack that supports gRPC, Kubernetes, and goLang using microservices architecture while hiring talented engineers remained a big problem.
To overcome this, he envisioned automating generating code that supports the modern stack and leaves just writing application code to the engineers. nurture.farm leveraged this to quickly scale to many microservices in a very short span of time. Standardizing the code also meant that the chances of errors were reduced automatically and a lot less time was spent on boilerplate code.
The elevator pitch for laminar is - "We just need to write MySQL query and voila, you have a running microservice."
The vision is to support more databases in the future through standard language to define contracts and entities.
- Automates boilerplate code
- Creates microservices using golang, gRPC, MySQL with a minimum learning curve
- Quickly upgrades the code by standardizing contracts of generated code with the application layer
graph TD
A[Required files are uploaded] --> B[Sql file is read and dummy database is created with user and app config table]
B --> C[Config file is read and all the configurations are set according to that. <br/> Required AST objects are added to a list which will be used later to modify respective templates]
C --> D[Data types are read from the generated tables <br/> and a hash-map with key = String and value = FieldDetail is generated.]
D --> E[Lam file is read and a list of AppConfigVO objects called entries are generared. <br/> Each entry represents an API and contains all information about it like SQL statement, SQL params etc]
E --> F[Finally, we process all the entries and generate the boilerplate code for each entry in <br/>the list with help of data extracted before and predefined templates]
F --> G[DummyDB is dropped. Microservice is downloaded in zip]
- Required Dependencies
- Quickstart Guide
- Example input files with explanation
- Example Generated Service
- Example Generated Files
- Overview of generated files by Laminar
- Deploying your Microservice
- More things you can do with Laminar with examples
- How to Run Laminar in Local
- Architecture
- How to Contribute
- Credits