Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/beatlabs/patron
Microservice framework following best cloud practices with a focus on productivity.
https://github.com/beatlabs/patron
framework go golang microservice
Last synced: about 1 month ago
JSON representation
Microservice framework following best cloud practices with a focus on productivity.
- Host: GitHub
- URL: https://github.com/beatlabs/patron
- Owner: beatlabs
- License: apache-2.0
- Fork: true (mantzas/patron)
- Created: 2019-01-30T13:49:54.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-11-15T05:37:21.000Z (about 1 month ago)
- Last Synced: 2024-11-15T06:26:43.871Z (about 1 month ago)
- Topics: framework, go, golang, microservice
- Language: Go
- Homepage:
- Size: 37.3 MB
- Stars: 123
- Watchers: 14
- Forks: 67
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
- awesome-go-extra - patron - 01-30T13:49:54Z|2022-08-22T06:05:02Z| (Web Frameworks / Fail injection)
README
# patron ![CI](https://github.com/beatlabs/patron/workflows/CI/badge.svg) [![codecov](https://codecov.io/gh/beatlabs/patron/graph/badge.svg?token=sxY15rXW1X)](https://codecov.io/gh/beatlabs/patron) [![Go Report Card](https://goreportcard.com/badge/github.com/beatlabs/patron)](https://goreportcard.com/report/github.com/beatlabs/patron) [![GoDoc](https://godoc.org/github.com/beatlabs/patron?status.svg)](https://godoc.org/github.com/beatlabs/patron) ![GitHub release](https://img.shields.io/github/release/beatlabs/patron.svg)[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fbeatlabs%2Fpatron.svg?type=shield&issueType=license)](https://app.fossa.com/projects/git%2Bgithub.com%2Fbeatlabs%2Fpatron?ref=badge_shield&issueType=license)
Patron is a framework for creating microservices, originally created by Sotiris Mantzaris (). This fork is maintained by Beat Engineering ()
`Patron` is french for `template` or `pattern`, but it means also `boss` which we found out later (no pun intended).
The entry point of the framework is the `Service`. The `Service` uses `Components` to handle the processing of sync and async requests. The `Service` starts by default an `HTTP Component` which hosts the `/debug`, `/alive`, `/ready` and `/metrics` endpoints. Any other endpoints will be added to the default `HTTP Component` as `Routes`. Alongside `Routes` one can specify middleware functions to be applied ordered to all routes as `MiddlewareFunc`. The service sets up by default logging with `slog`, tracing and metrics with [OpenTelemetry](https://opentelemetry.io).
`Patron` provides abstractions for the following functionality of the framework:
- service, which orchestrates everything
- components and processors, which provide an abstraction of adding processing functionality to the service
- asynchronous message processing (RabbitMQ, Kafka, AWS SQS)
- synchronous processing (HTTP)
- gRPC support
- metrics and tracing
- logging`Patron` provides the same defaults for making the usage as simple as possible.
`Patron` needs Go 1.22 as a minimum.## Code coverage
![Code coverage](https://codecov.io/gh/beatlabs/patron/graphs/icicle.svg?token=sxY15rXW1X)
## Table of Contents
- [Code of Conduct](docs/CodeOfConduct.md)
- [Contribution Guidelines](docs/ContributionGuidelines.md)
- [Acknowledgments](docs/ACKNOWLEDGMENTS.md)