Gorbio is a Go-based modular ERP backend foundation designed to support extensible business modules, dependency-aware bootstrapping, and a clean separation between the application core and domain modules.
This project is currently structured as a framework skeleton for a modular ERP platform, with the core runtime and module registration system already in place.
The application follows a modular architecture where:
- the core provides shared runtime behavior,
- modules register themselves with the application,
- dependencies between modules are resolved before boot,
- module lifecycle hooks and migrations are executed in order,
- the app exposes an HTTP server and internal event bus.
The main runtime lives in the core package:
core/app.goinitializes the application and boots registered modules.core/registry.gomanages module registration and topological dependency resolution.core/eventbus.goprovides an internal event bus for module communication.core/router.goexposes the app HTTP routing layer.
Modules are defined and registered through the application core. The dependency order is validated and resolved automatically before installation and route registration.
The initial module layout is under modules/, with a base module scaffold in modules/base.
The application bootstrap is defined in:
cmd/server/main.go
This is the place where the server is started and the app is assembled.
app/
├── cmd/
│ └── server/
│ └── main.go
├── core/
│ ├── acl/
│ ├── app.go
│ ├── boot.go
│ ├── context.go
│ ├── db.go
│ ├── eventbus.go
│ ├── module.go
│ ├── registry.go
│ ├── registry_test.go
│ └── router.go
├── internal/
├── modules/
│ └── base/
│ ├── base.go
│ ├── handlers.go
│ ├── migrations/
│ ├── models.go
│ ├── module.go
│ └── service.go
├── plugins/
├── proto/
├── test/
├── web/
├── go.mod
├── go.sum
└── README.md
The current implementation includes the following foundational pieces:
- module registry and dependency validation,
- lifecycle boot flow,
- migration execution hooks,
- route registration hooks,
- event subscriber registration,
- HTTP server startup via the app runtime.
- Go 1.25 or newer
- Optional: PostgreSQL for future persistence and module integration
cd app
go mod tidycd app
go run ./cmd/servercd app
go test ./...This repository is still in a foundational stage. The current code establishes the application skeleton and modular runtime architecture, while the business-specific ERP modules and integrations are meant to be added on top of this base.
The project is intended to evolve toward a complete ERP platform with:
- module registration and lifecycle management,
- database migrations per module,
- authentication and authorization,
- event-driven communication across modules,
- domain modules such as base, inventory, and sales,
- API and frontend integration layers.
This project is licensed under the GNU Lesser General Public License v3.0 (LGPL-3.0).
LGPL is a good fit for a modular ERP foundation because it allows the core framework to remain open and reusable while still giving you more flexibility for integrating the software into proprietary or custom deployments. It is especially suitable when you want to preserve openness for the platform itself, while permitting closed-source extensions or customer-specific add-ons that interact with the library in a controlled way.
See the full license text in LICENSE.