In Kong Gateway, a service is an abstraction of an upstream application that services requests. Services can store collections of objects like plugin configurations, and policies, and they can be associated with routes.
When defining a service, the administrator provides a name and the upstream application connection information. The connection details can be provided in the url field as a single string, or by providing individual values for protocol, host, port, and path individually.
Services have a one-to-many relationship with upstream applications, which allows administrators to create sophisticated traffic management behaviors.
Services, in conjunction with routes, let you expose your services to clients with Kong Gateway. Kong Gateway abstracts the service from the clients by using routes. Since the client always calls the route, changes to the services (like versioning) don’t impact how clients make the call. Routes also allow the same service to be used by multiple clients and apply different policies based on the route used.
flowchart LR A(API client) B("`Route (/mock)`") C("`Service (example-service)`") D(Upstream application) A <--requests responses--> B subgraph id1 ["` **KONG GATEWAY**`"] B <--requests responses--> C end C <--requests responses--> D style id1 rx:10,ry:10