website icon indicating copy to clipboard operation
website copied to clipboard

docs: add message concepts doc

Open thulieblack opened this issue 2 years ago • 12 comments

Description

This PR adds the new message concept spec

Related issue(s)

  • Fixes #941

thulieblack avatar Sep 12 '22 20:09 thulieblack

Deploy Preview for asyncapi-website ready!

Built without sensitive environment variables

Name Link
Latest commit f404566410dea8a8f9bdd48ed8d18723f35c3a01
Latest deploy log https://app.netlify.com/sites/asyncapi-website/deploys/636c22d9a02316000814955f
Deploy Preview https://deploy-preview-944--asyncapi-website.netlify.app
Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

netlify[bot] avatar Sep 12 '22 20:09 netlify[bot]

Hey, @derberg here is the proper PR, thank you 😅

I need help in defining the purpose of the message concept as well as the diagram.

cc. @smoya

thulieblack avatar Sep 12 '22 20:09 thulieblack

@thulieblack

  • I'm not sure it is possible to represent message concept with a diagram. Can't think of any example
  • I do think it would be a good place to address a question about what is the difference between event and message 😄 maybe even title could be Message vs Event. I'm not sure I want to be part of this academic discussion 😆

I recommend looking at:

  • https://developer.lightbend.com/docs/akka-platform-guide/concepts/message-driven-event-driven.html
  • https://bradirby.com/difference-between-event-and-message/
  • https://www.reactivemanifesto.org/glossary#Message-Driven

Also, I could not help myself, and dragged community into discussion, let's see if they catch a bait 😃

  • https://www.linkedin.com/feed/update/urn:li:activity:6975192181678436352
  • https://twitter.com/AsyncAPISpec/status/1569426365903953921

Also, a question I always wanted to ask @fmvilas "do you recall why we talk about making it easier to work with event-driven architectures, but in spec we have Messages and not Events" 🍿

derberg avatar Sep 12 '22 20:09 derberg

Also, a question I always wanted to ask @fmvilas "do you recall why we talk about making it easier to work with event-driven architectures, but in spec we have Messages and not Events" 🍿

@derberg Does this reply to your question? https://www.asyncapi.com/docs/tutorials/getting-started/event-driven-architectures#why-event-driven-and-not-message-driven

fmvilas avatar Sep 12 '22 21:09 fmvilas

@fmvilas not really. I'm more interested if there was some specific reason why we picked to use two terms. Maybe some old issue about it? or maybe you remember 😄

derberg avatar Sep 12 '22 21:09 derberg

Haha! I do know why. Strictly speaking, it's all "messages". A message can be an event, a command, and maybe something else (although I never found a 3rd kind). The spec is a formal document so "message" seems appropriate here. Now that said, event-driven architectures have become more popular in recent years (with the rise of RabbitMQ, Kafka, etc.). And yeah, I mean "event-driven" architectures. Using events only. However, the more popular it got, the more people started doing not-just-events-driven architectures. See, for instance, the case of CQRS (Command-Query Responsibility Segregation). Again, strictly speaking, these are message-driven architectures but the reality is that this name never got popular and most of us are just using event-driven architectures to refer to both, message-driven architectures and event-driven architectures 🤷‍♂️ I guess it sounds cooler with "event" and that won 😄

So for strict stuff like the spec, it's "message" and for communication or marketing, it's "event" because that's what people tend to use the most.

fmvilas avatar Sep 12 '22 21:09 fmvilas

Okay so now my question @fmvilas is, should we still go ahead and define the message spec concept or ....?

thulieblack avatar Sep 13 '22 08:09 thulieblack

@thulieblack we need message as this is what we have in spec. But we also need to address these "event vs message" definitions, to make it clear where to draw the line. So we explain the message, and also add event 😄

btw, I got you lots of ideas 😄 -> https://twitter.com/AsyncAPISpec/status/1569426365903953921 and https://www.linkedin.com/feed/update/urn:li:activity:6975192181678436352?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A6975192181678436352%2C6975358655713980416%29 (I did not expect such a great response from the community 🚀 )

derberg avatar Sep 13 '22 20:09 derberg

Looks good to me, @thulieblack. I think we should keep it as simple as possible on this page. Maybe you want to mark this PR as ready for review?

fmvilas avatar Sep 16 '22 06:09 fmvilas

⚡️ Lighthouse report for the changes in this PR:

Category Score
🟠 Performance 52
🟠 Accessibility 88
🟠 Best practices 83
🟢 SEO 100
🔴 PWA 30

Lighthouse ran on https://deploy-preview-944--asyncapi-website.netlify.app/

github-actions[bot] avatar Sep 16 '22 07:09 github-actions[bot]

Looks good to me, @thulieblack. I think we should keep it as simple as possible on this page. Maybe you want to mark this PR as ready for review?

Done 👌

thulieblack avatar Sep 16 '22 08:09 thulieblack

@alequetzalli / @fmvilas over to you 🤓

thulieblack avatar Oct 12 '22 10:10 thulieblack

@alequetzalli I think this is also ready for a final review. Hey @derberg and @fmvilas 😊😊

thulieblack avatar Oct 26 '22 15:10 thulieblack

/rtm

quetzalliwrites avatar Nov 09 '22 22:11 quetzalliwrites

@alequetzalli please always make sure you align the Prev and UpNext buttons properly for adjacent pages also, before merging the PR. I see that with this PR, we again have an issue in Channel page and Tutorials - Overview page. Since we are adding new pages to the documentation, it can't be possible to make separate issue for each page and someone else should come to resolve the error. These buttons should be thoroughly checked until some automation is established for this.

akshatnema avatar Nov 10 '22 05:11 akshatnema

I revised this and all of the buttons work, there is no problem in this PR.

quetzalliwrites avatar Nov 10 '22 14:11 quetzalliwrites

@alequetzalli Look into the screenshots below, they are of Channel and Tutorials - Overview page. The UpNext button of Channel page and Prev Button of Tutorials - Overview.

Prev Button of Tutorials - Overview page:

Screenshot_2022-11-10-20-41-34-46.jpg

UpNext Button of Channel page:

Screenshot_2022-11-10-20-41-12-50.jpg

These buttons has to be updated in this PR, while adding new page in between.

akshatnema avatar Nov 10 '22 15:11 akshatnema

@Akshatnema yes, every time a new page is added these buttons will need to be updated and that is correct. Yes, we need a new PR to fix the previous page buttons and that is fine.

Her buttons on this page are correct and there is nothing to fix.

image

quetzalliwrites avatar Nov 10 '22 15:11 quetzalliwrites

@alequetzalli Yeah, I agree that she added buttons in the page in correct way, but it has to be ensured that every time, a new page is added in docs, it shouldn't break the sequence of the pages linked. For every new page created and added, the buttons should be added on that page and should be updated for the immediate next and previous page.

I can't say that this is the job of who created Channel page because it was added earlier, so if anyone adds any new page in the docs, he has to make changes in the buttons of 3 pages exactly: present new page, immediate next page and previous page.

akshatnema avatar Nov 10 '22 15:11 akshatnema

I think what you are saying @akshatnema is that per every page pushed/added to the website someone needs to update the previous page buttons so they align properly.

thulieblack avatar Nov 10 '22 15:11 thulieblack

every page pushed/added to the website someone needs to update the previous page buttons so they align properly.

Exactly :+1:

akshatnema avatar Nov 10 '22 16:11 akshatnema

I have created a PR #1100 to solve this issue @alequetzalli and @akshatnema

thulieblack avatar Nov 10 '22 17:11 thulieblack