Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add service to glossary #2111

Closed
wants to merge 8 commits into from
9 changes: 9 additions & 0 deletions specification/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Some other fundamental terms are documented in the [overview document](overview.
* [Instrumented Library](#instrumented-library)
* [Instrumentation Library](#instrumentation-library)
* [Tracer Name / Meter Name](#tracer-name--meter-name)
* [Service](#service)
- [Logs](#logs)
* [Log Record](#log-record)
* [Log](#log)
Expand Down Expand Up @@ -153,6 +154,14 @@ This refers to the `name` and (optional) `version` arguments specified when
creating a new `Tracer` or `Meter` (see [Obtaining a Tracer](trace/api.md#tracerprovider)/[Obtaining a Meter](metrics/api.md#meterprovider)).
The name/version pair identifies the [Instrumentation Library](#instrumentation-library).

### Service
svrnm marked this conversation as resolved.
Show resolved Hide resolved

A `service` is a component of a larger distributed `application`. A service logically represents a repeatable business activity with a specified outcome. A service exchanges information with other services via some form of inter-process communication mechanism, such as network or shared storage.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we feel that service is not self-explanatory, then we cannot define it via application, which itself is not defined.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a good point. A proposal how service defines the word application:

A service is a component of a larger distributed application. A service logically represents a repeatable business activity with a specified outcome. A service exchanges information with other services via some form of inter-process communication mechanism, such as network or shared storage. A group of services are forming an application.

Note: we have to pay attention with the word "application" since it is heavily overloaded, see the conversation around service vs frontend app(lication). Distributed Application would make this more clear, but as per your other comment, this would not make sense for an application only having a single service.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not correlate at all with "application" to avoid confusion as you suggested:

A service logically represents a repeatable business activity with a specified outcome. A service exchanges information with other services via some form of inter-process communication mechanism, such as network or shared storage.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand what "logically represents a repeatable business activity with a specified outcome" means. That doesn't sound like a service to me. Also, why does a service need to exchange information with other services? That seems like something a service might do, but it's certainly not a requirement.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"logically represents a repeatable business activity with a specified outcome"
See #2111 (comment): this comes from the service definition of SOA. What alternative would you suggest?

Also, why does a service need to exchange information with other services? That seems like something a service might do, but it's certainly not a requirement.
Would adding a "may", i.e. "A service may exchange..." help?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Higher level answer provided as a comment on the PR itself, for broader visibility.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is distributed important here? If my application is not distributed, then I don't have any services by this definition?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my note above, if we remove distributed it can be confused much more easily with a frontend application. Maybe there is a better term.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my note, let's remove any reference to "application" for the moment.


A `service instance` is a physical manifestation of a service, usually running in its own operating system process. Multiple service instances are typically deployed at the same time for high availability and scalability.
svrnm marked this conversation as resolved.
Show resolved Hide resolved

See [Resource Semantic Conventions - Service](resource/semantic_conventions/README.md#service) for more details and naming requirements.

## Logs

### Log Record
Expand Down