Replies: 12 comments 14 replies
-
Have you come across event modelling at all? Your diagram looks like that might be an interesting starting point https://eventmodeling.org/posts/what-is-event-modeling/ The advantage, I guess, is that an event model also defines the data that each event should carry, by defining the use-cases that need the data. |
Beta Was this translation helpful? Give feedback.
-
This is interesting idea. As you mentioned it can break down lot of barriers (one of the difficult task my teammates find when writing OpenAPI spec, writing them properly; we haven't figured out any GUI tool for writing aspect). |
Beta Was this translation helpful? Give feedback.
-
I really like the idea and I see the value in this. Something cool we could work in parallel (already talked to you about it @boyney123) is supporting event flows within the spec. In particular, the other day I started thinking about the pattern Sagas, and how they could be represented in the spec (not sure if makes sense yet). |
Beta Was this translation helpful? Give feedback.
-
Interesting idea. I agree with the previous speakers and I have mostly the same opinion, but I would just like to show you a tool (or rather a plugin) - https://github.com/dalelane/node-red-contrib-plugin-asyncapi - created by our one of the most active contributors @dalelane. It is not what we think (building/updating spec by nodes), but it is very similar, on which we could base. |
Beta Was this translation helpful? Give feedback.
-
I think it's a valuable idea. On the commercial side, Solace has Event Portal, which has much of this functionality. |
Beta Was this translation helpful? Give feedback.
-
I made a video of an idea here: https://asyncapi.slack.com/files/U020GN9C6FM/F02GZA0RMBQ/asyncvisual.mp4 |
Beta Was this translation helpful? Give feedback.
-
I think we need to start talking about event storming as is the baseline for this. And to start relating our documentation then into the event storming workshop practices. I can help the team to make the event storming. I don't know if I should open another discussion but I think it would be great start to including it as part of our workflow so we can have a broader scope |
Beta Was this translation helpful? Give feedback.
-
@boyney123 I would love to see a tool for doing Event Storming and generate an AsyncAPI from it. I am an avid user of APICurio.io and it allows you to do some similar things with OpenAPI. For example, you can paste in an example JSON Body and have it create the JSONSchema and related CRUD REST API endpoints. |
Beta Was this translation helpful? Give feedback.
-
The coolest thing would be if this can work in both directions. I mean I can model my system in the UI and export AsyncAPI files, but also I can actually write AsyncAPI files and then import them into the UI and get the visualization. So we support both, new users, and folks that are already here and went through hell of creating AsyncAPI files by hand 😆 https://github.com/asyncapi/cupid/ is a project that can generate React flow diagrams and others by analyzing AsyncAPI documents. I think there is value in aligning both projects |
Beta Was this translation helpful? Give feedback.
-
Thanks everyone for the feedback so far, next steps for me will be:
I'm thinking for now having this as a standalone application you can run on your machine, but with the future view to allow this to be injected/used within the AsyncAPI studio (and other applications too). I will share something back with this group when I get something working for it's initial feedback and next steps. Thanks! |
Beta Was this translation helpful? Give feedback.
-
Just an update here, I managed to get something working and also it has been added to our new version of the AsyncAPI Studio (which is currently on this branch) If you want to give it ago you can check out the branch and then load your AsyncAPI file and see how it looks. Next steps, is to get Studio live and start to get feedback around the tooling and take it from there. |
Beta Was this translation helpful? Give feedback.
-
I find the ideas discussed in this thread to be very interesting. In my opinion going this direction would be a real enrichment to what AsyncAPI has to offer. Looking through the website and examples I see mostly the 'typical' message queuing use cases addressed, with channels, topics, pubsubs, etc. And kind of fixed infrastructures, server topologies. My interests not only go to DDD, CQRS/ES but also abilities to describe message exchanges for federated protocols. I am referring here to ActivityStreams and ActivityPub W3C recommendations. ActivityPub is an email-like protocol with inboxes and outboxes where messages between Actors are exchanged (i.e. a sort of distributed Actor Model). Based on ActivityStreams as a core ontology with social networking primitives, vocabulary extensions can be written and defined as JSON-LD Linked Data. The AS/AP protocol stack is what drives the Fediverse. On the topic of Event Storming in particular I found this conference talk by @mattbishop to be quite interesting: https://www.youtube.com/watch?v=_JPcWvioBM8 One question I have.. this discussion is more than a year old, and related discussion #221 also wasn't given follow-up (at least in that location). Are there reasons for that? Like focussing on different areas with AsyncAPI first? |
Beta Was this translation helpful? Give feedback.
-
As part of our Roadmap at AsyncAPI we would like to focus on an area User is able to focus only on business logic
As part of that issue there states some scope
An AsyncAPI file can be created without having to understand AsyncAPI syntax. This can be a CLI tool that asks questions, an application UI, a form, etc.
.This leads me to this proposal of a new tool.
Eventstorming Tool (maybe name can change)
What is it
First, let me describe what it is and my initial ideas behind the tool.
A key part of Event-Driven Architectures is the process of identifying your events and systems (also known as Event Storming).
Events belong to anybody not just the developers or people writing the spec files/code.
Anybody on the team from any background helps with the process by defining events and flow across their application/business domain.
So this got me thinking.....
What if we had an Open Source tool that would allow people to Event Storm but rather than just boxes on the screen, they could do more with it....
What if, we could define our events, boundaries and systems and be able to add meta data, and schemas to our events and event start to map out parts of our architecture using this tool, then once you do that export into something useful.
Imagine the tool with these kind of features (maybe not in scope for first release ofc):
Why it might be useful
This hopefully could break down barriers to AsyncAPI, and allow people to collaborate using a tool and instantly get value not only from the drawing they do, but generate code and async API files etc.
How could it work
I have done a rough wireframe of some thoughts, but I'm a huge fan of https://reactflow.dev/ and I think it fits perfectly with visualizing event flows.
Here is a quick mockup of what this thing could look like:
This is something that can be run locally or maybe in the cloud.
Eventually, you could even support WebSockets and have multiple use it at the same time collaborating, but maybe out of scope...
Also done right, we could have it imported in our new studio too, that @magicmatatjahu is working on.
What's next
I would love to get some feedback on the idea, and understand if it would be useful for anyone out there.
I think there is some huge value writing some tools ontop of the AsyncAPI spec to build the AsyncAPI itself using processes we already know and do in businesses (like event storming).
Anyway, would love to know what you think.
Update (Fri 8th)
Here is a video showing the kind of stuff I think may be useful: https://asyncapi.slack.com/files/U020GN9C6FM/F02GZA0RMBQ/asyncvisual.mp4
Beta Was this translation helpful? Give feedback.
All reactions