:ci: https://github.com/smallrye/smallrye-stork/actions?query=workflow%3A%22SmallRye+Build%22 :sonar: https://sonarcloud.io/dashboard?id=smallrye_smallrye-stork
== SmallRye Stork
image:https://img.shields.io/maven-central/v/io.smallrye.stork/stork-api?color=green["Maven"] image:https://javadoc.io/badge2/io.smallrye.stork/stork-api/javadoc.svg[javadoc] image:https://img.shields.io/github/license/smallrye/smallrye-stork.svg["License", link="http://www.apache.org/licenses/LICENSE-2.0"] image:https://github.com/smallrye/smallrye-stork/workflows/SmallRye%20Build/badge.svg?branch=main[link={ci}] image:https://sonarcloud.io/api/project_badges/measure?project=smallrye_smallrye-stork&metric=alert_status["Quality Gate Status", link={sonar}]
SmallRye Stork, Stork, in short, is a Service Discovery and Client-Side Load Balancer framework.
=== Main features
=== Example
Let's imagine you use https://www.consul.io/[Consul]. Consul stores the list of service instances you have and lets you locate them.
Stork bridges your application and Consul and lets you retrieve the services stored in Consul and select the most appropriate one:
Service
object for my-service
.my-service
. This performs a lookup in Consul and a selection using a load-balancer.That example uses the programmatic API. When integrated into the framework, all these steps can be omitted, and you only need to configure the application:
stork.my-service.service-discovery.type=consul # <1> stork.my-service.load-balancer.type=least-response-time # <2>
my-service
service uses Consul as service discovery backendmy-service
stork
scheme and indicates which service is targeted. When accessed, it will select the service instance using Stork.=== Contributing
Check the link:CONTRIBUTING.md[contribution guide] to get build and contribution instructions.
=== Sponsors
Stork is part of the https://smallrye.io[SmallRye project]. Red Hat sponsors the development of this project.