/nacelle

The Go service framework.

Primary LanguageGoMIT LicenseMIT

Nacelle logo

Nacelle service framework

PkgGoDev CircleCI status Coverage status Sonarcloud bugs count Sonarcloud vulnerabilities count Sonarcloud maintainability rating Sonarcloud code smells count


See the package documentation on nacelle.dev.

Goals

Core goals:

  • Provide a common convention for application organization so that developers can quickly dive into the meaningful logic of an application.
  • Support a common convention for declaring, reading, and validating configuration values from the runtime environment.
  • Support a common convention for registering, declaring, and injecting struct and interface dependencies.
  • Support a common convention for structured logging.

Additional goals:

  • Provide additional non-core functionality via separate opt-in libraries. Keep the dependencies for the core-functionality minimal.
  • Operate within existing infrastructures and do not require tools or technologies outside of what this project provides.

Non-goals

  • Impose opinions on service discovery.
  • Impose opinions on inter-process or inter-service communication.
  • Impose opinions on runtime environment, deployment, or orchestration of services.