http://empower.sh : A cloud-native dev framework, based on gRPC and Protobuf

20 views
Skip to first unread message

Yannick Buron

unread,
Feb 12, 2020, 11:37:02 AM2/12/20
to grpc.io
Hello all,

I'm sharing here a project I am working since quite some time now: http://empower.sh. This is intended to be a backend framework usable by any developer, with only basic knowledge of Golang.

It goes way beyond micro-framework like micro or gin, and is not a monolith like Buffalo. It is heavily inspired by the Odoo framework, an ERP I used for more than 10 years and which is one of the most productive and underestimated back-office framework out there but with one caveat : it's also a monolith. With the Empower stack I want to keep the same productivity but with micro-services patterns, so each teams can be fully autonomous and manage their own services.

My goal is to build libraries to manage CRUD operations in a micro-services context, for example we can define in a model X a many2one field linked to a model Y in another service. When we create a new X, the libraries will request the other service to check that the Y referenced in the many2one field exist.
This is only a simple example, CRUD in micro-services are complex to manage, yet common this is why I think we absolutely need libraries to manage them and share the work.

To be as productive as possible, I need each services to follow standard pattern for their inter-communications. This is where I heavily use gRPC, to fight network latency and ensure a speed as close as possible from a monolithic ERP framework.
Also, Protobuf is used as a first-class citizen inside the ORM itself, so we can serialize the model at any time and there is no transcript needed when building the gRPC request. And I extensively use code generation, to avoid the effect "you use the framework, you learn the framework, not the language".

I invite you to read my post on medium for more details on the framework architecture : https://medium.com/@yannick.b/how-should-be-designed-the-ideal-golang-crud-backend-36c8f874c6a7. Golang, gRPC, Protobuf, microservices are awesome technologies and patterns, solving real problems. I think some of the most experimented backend developers are on this mailing list and I hope to have feedback from some of you.

Thanks for your attention, I hope you'll enjoy this PoC.


Reply all
Reply to author
Forward
0 new messages