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

Provide definition for the reply #980

Open
Tenischev opened this issue Oct 18, 2023 · 8 comments · May be fixed by #992
Open

Provide definition for the reply #980

Tenischev opened this issue Oct 18, 2023 · 8 comments · May be fixed by #992
Labels
stale 💭 Strawman (RFC 0) RFC Stage 0 (See CONTRIBUTING.md)

Comments

@Tenischev
Copy link
Member

In current Spec v3 pre-release the reply appear first time as operationObject field:

<a name="operationObjectReply"></a>reply | [Operation Reply Object](#operationReplyObject) &#124; [Reference Object](#referenceObject) | The definition of the reply in a request-reply operation.

with the description The definition of the reply in a request-reply operation.
But Spec v3 has no definition or describing what is meant under request-reply operation.
@jonaslagoni wrote the blog post describing what it could be, but the blog post is not the Specification. Blog post could be a spice for a cake, but not the cake.

I suggest to provide definition of reply in the Definitions section, maybe as subpart of Message definition.

@Tenischev Tenischev added the 💭 Strawman (RFC 0) RFC Stage 0 (See CONTRIBUTING.md) label Oct 18, 2023
@github-actions
Copy link

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

@smoya
Copy link
Member

smoya commented Oct 19, 2023

I suggest to provide definition of reply in the Definitions section, maybe as subpart of Message definition.

Wondering if it is not already covered by the description of what an Operation Reply Object means.

Describes the reply part that MAY be applied to an Operation Object. If an operation implements the request/reply pattern, the reply object represents the response message.

@Tenischev
Copy link
Member Author

For me description of Operation Reply Object and definition of Message are a bit not match.

Message:

Since a message is a generic mechanism, it can support multiple interaction patterns such as event, command, request, or response.

Reply Object:

If an operation implements the request/reply pattern, the reply object represents the response message.

I feel here a gap, like "what exactly is request?", consequently "is it send or receive operation?". (For me now it's clear, but I feel some degree of uncertain, when read Spec first time)

If we have a look of EIP request-reply definition, I would say it a bit more solid

Send a pair of Request-Reply messages, each on its own channel.

Request-Reply has two participants:

Requestor – Sends a request message and waits for a reply message.
Replier – Receives the request message and responds with a reply message.

@derberg
Copy link
Member

derberg commented Oct 25, 2023

Defenitely like the idea of adding another definition, as this is what Definitions are for in the spec, to introduce the concept

@Tenischev do you have a suggestion for a good paragraph?

@Tenischev
Copy link
Member Author

@derberg to be consistent I also provide changes in other part of document related with reply or "response" message.

Message

A message is the mechanism by which information is exchanged via a channel between servers and applications. A message MUST contain a payload and MAY also contain headers. The headers MAY be subdivided into protocol-defined headers and header properties defined by the application which can act as supporting metadata. The payload contains the data, defined by the application, which MUST be serialized into a format (JSON, XML, Avro, binary, etc.). Since a message is a generic mechanism, it can support multiple interaction patterns such as event, command, request, or reply.

Reply message

A reply is a special type of message used in the request-reply interaction pattern and can only be used in combination with a request message. In the request-reply interaction pattern, messages are defined as follows: Sender sends a request message and waits for a reply message, while Receiver receives the request message and responds with a reply message.


Operation Object

Describes a specific operation.

Fixed Fields
Field Name Type Description
reply Operation Reply Object | Reference Object The definition of the reply part in a request-reply interaction. When this property is defined, the messages represent request messages in a request-reply interaction.

Operation Reply Object

Describes the reply part that MAY be applied to an Operation Object. If an operation implements the request-reply interaction pattern, this object represents the reply address/channel and the reply message.


Message Bindings Object

Map describing protocol-specific definitions for a message.

Fixed Fields
Field Name Type Description
http HTTP Message Binding Protocol-specific information for an HTTP message, i.e., a request or a reply.

@derberg
Copy link
Member

derberg commented Nov 16, 2023

@Tenischev can you show it in a draft PR 🙏🏼

@Tenischev
Copy link
Member Author

@derberg did you have a chance to have a look on draft PR?

Copy link

This issue has been automatically marked as stale because it has not had recent activity 😴

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience ❤️

@github-actions github-actions bot added the stale label Mar 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale 💭 Strawman (RFC 0) RFC Stage 0 (See CONTRIBUTING.md)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants