Patron is a framework for creating microservices, originally created by Sotiris Mantzaris (https://github.com/mantzas). This fork is maintained by Beat Engineering (https://thebeat.co)
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.
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.