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 <http://odoo.com> 
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.


-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/249029dc-869f-4ab4-b426-46384ad7f3ee%40googlegroups.com.

Reply via email to