asyncapi / website

AsyncAPI specification website
https://www.asyncapi.com
Apache License 2.0
440 stars 583 forks source link

Measuring AsyncAPI spec adoption #780

Open derberg opened 2 years ago

derberg commented 2 years ago

Reason/Context

We do not know how many people use AsyncAPI. The most accurate number we could get is the amount of the AsyncAPI users that work with AsyncAPI documents. But how measure how many people out there created/edited AsyncAPI file?

The answer is a solution that includes:

20210528_114537

Some more discussion -> https://asyncapi.slack.com/archives/C0230UAM6R3/p1622198311005900

Description

  1. Create new endpoint in server-api service that anyone can use to fetch AsyncAPI JSON Schema files of any version
  2. JSON schemas are in https://github.com/asyncapi/spec-json-schemas and can be used as normal dependency
  3. Whenever JSON Schema file is fetched by the user, information should be stored somewhere. I propose Google Tag Manager as we already have it for the website, we can send data there and then easily read data. I'm all ears if there is something better and still free
  4. Add AsyncAPI config to SchemaStore and have a configuration on AsyncAPI side that will always automatically open a PR against SchemaStore to provide a new location of a new version of the JSON Schema for the new AsyncAPI spec version
  5. Update docs and instructions for users how to configure IDE properly and how to name files. Update official examples

If time left, we need to expose numbers somewhere. Either embed Google Analytics diagram somewhere on the AsyncAPI website or just have at least an API endpoint that exposes the latest numbers.

For GSoC participates

smoya commented 4 months ago

Like we will be going forward with this issue or not

We did move forward. We have a New Relic dashboard that counts downloads of JSON Schema files, among other things. It is not perfect, as explained in this issue, because due to technical limitations on how plugins work.

ATM there is no quick solution but long term journey, which is working on https://github.com/SchemaStore/schemastore/issues/3460 and then push (or do the work) plugins (such as the VSCode YAML) to adapt to that new mechanism when pulling schemas from Schema Store.

It is a long journey, but happy to welcome people if want to help!

derberg commented 4 months ago

best would be if we document what we have, make accessible to others and close that issue, as there is a dependency on outside world that will take as @smoya wrote - long way to get it done. What we already have - overall adoption of AsyncAPI is good for me anyway, as I personally do not care much about specific version adoption. We have one big challange - 0 historical data as new relic free account that we use do not preserve data