-
-
Notifications
You must be signed in to change notification settings - Fork 98
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
[DRAFT] Studio vision and plans #634
Comments
Would love to work on it @fmvilas |
You're already on my list mate :) Will hear from me soon 😄 |
I've joined the Studio Visions Meeting. Will we be having more such meetings around kickstarting the planning or everything from now will go on async ? |
Yay! 🎉 Yeah, we will be having them. @Amzani is currently organizing all the stuff around the project coordination. Everything will be transparent as always. No secret meetings or anything. We'll make sure you and others who are interested know about these meetings upfront, even to decide the best day and time :) |
Nice 😀 |
Excited about the Studio vision. 🚀 |
Hey, @princerajpoot20! We would love to have you, of course! Please have a look at https://www.youtube.com/live/1jiRDmuA-zg?feature=share&t=671. In short, pick an issue from https://shapeit.app/projects/org/asyncapi/16 that no one has started yet (its progress is 0 and no one left a comment on the issue saying they're starting to work on it or is not assigned) and that's it. Leave a comment saying you're starting to work on it and make sure you give an update at least every 3 days. Ideally, update your progress (or no progress if you're stuck) every time you make some meaningful progress if the issue is taking longer to resolve. Happy to help further if you need it. Either here or DM on Slack 👍 |
Sure, I'll check the issue list. |
@fmvilas would surely love to be a part of this? |
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 ❤️ |
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 ❤️ |
Still relevant. |
Excited about the Studio vision. 🚀 |
THIS IS A WORK IN PROGRESS
This issue aims to explain my vision and plans for AsyncAPI Studio. Please take this as an initial proposal. It's by no means set in stone and I'd love it if we could work on this together as a community.
Vision
Studio goes beyond a simple playground to try out the spec and becomes a fully-featured suite to help developers work with event-driven architectures (EDA) and APIs. It will become a tool you can use to easily design your services and share them with your colleagues. Among other features, it should:
Who's the target persona
We're targeting two kinds of people:
In other words, we're targeting the so-called "providers" of the services and not so much the "consumers" of the services.
Why?
At the time of this writing, we're seeing an increased interest in using AsyncAPI to define and document EDAs. Most of the issues we hear about from users are those related to authoring AsyncAPI documents: how to properly structure it to map my service/API definition, how to properly reuse objects like servers, channels, and messages, etc.
I think the most important thing we can do right now is to help those interested in authoring AsyncAPI documents as much as possible, for two main reasons:
Proposed Changes
Summary
Layout improvement
The previous top bar disappears as it was useless (it only had the Studio logo and some links to stuff not related to Studio). Instead, it's now holding the name of the service (AsyncAPI file) we're developing and a few buttons to customize the layout. These are just the buttons that used to be on the sidebar, i.e., toggle Navigation, Docs, Diagnostics, etc.
But probably, the biggest change here is the introduction of this new sidebar on the left. It contains a bunch of buttons and also the avatar of the user. This new sidebar is meant to be the navigation for the whole application, meaning it's not just for the code editor as it was before. The purpose of this sidebar is to navigate to other parts of the application like Services, Governance, Settings, and more.
In general, now the layout is accommodated to start growing the application in a friendly and sane way.
Visual Designer
To address the first point of the vision ("Let people quickly start authoring AsyncAPI documents without having to learn the AsyncAPI syntax and nuances"), we're adding a visual designer. Essentially, this is just a UI to help you edit your AsyncAPI file. It takes the AsyncAPI document as input and outputs a new one with the changes you make on the UI. That's it. No more, no less.
Play with the interactive Figma prototype here: https://www.figma.com/proto/bPMB3lkMTOOMuKk0oGLuNm/Studio?type=design&node-id=96-2392&scaling=contain&page-id=0%3A1&starting-point-node-id=2%3A2.
Services Directory
This is the screen you land on when you're already signed in (once we implement signups, of course). It's a list of all the services (AsyncAPI documents) in your organization. They can be filtered down by tags (those in the AsyncAPI documents) and even search by words. You can also pin the services you work the most with on the top.
Play with the interactive Figma prototype here: https://www.figma.com/proto/bPMB3lkMTOOMuKk0oGLuNm/Studio?type=design&node-id=2-2&scaling=contain&page-id=0%3A1&starting-point-node-id=2%3A2.
What are these icons on the sidebar?
Top to bottom, these are: Services Directory (the one described above), Architecture Map, Registry, Governance, Teams management, Organization Settings, Add button (new Service, new Broker, new Message, etc.), Search, and User Menu (User settings, Logout, etc.
In the first iteration, we're only implementing the Layout Improvement and the Visual Designer but right after that, the first feature we'll target will be the Services Directory. There are no designs for the rest of the features yet but I'll try to briefly explain what they are about:
Architecture Map
It's pretty much something like this: https://app.eventcatalog.dev/visualiser/?type=all&name=AllEventsAndServices. I actually think that Studio should let you export to Event Catalog, either on the UI, the CLI, or both.
It's a map where you can see how things are connected. What services are sending what messages and what services are consuming them.
Registry
It's a registry/catalog of all the components of an AsyncAPI file: servers, channels, messages, schemas, parameters, server variables, etc. Everything that can be referenced using
$ref
has a place here. We should encourage and facilitate reusability as much as possible. Aside from the UI, there should be an API to address all these resources from a$ref
. For instance, something like$ref: 'https://studio.asyncapi.com/api/org/1/servers/kafka-production'
.Governance
It's a place where architects can define Spectral rules that will be applied to all the AsyncAPI documents in an organization. This would help organizations enforce their own style guide.
Teams Management
It's a place where you can see, invite, and manage the members of an organization. Probably to be merged inside the next section.
Organization Settings
It's a place where you can tune the settings of your organization, e.g., the name, the members and their permissions, the teams, GitHub integration, etc.
Add Button
A quick way to create new stuff. A new service, a new server, a new message, a new schema, etc.
Search
Well, you know. Search anything and everything in your organizations :)
User Menu
The typical user menu where you can config your name, avatar, and other stuff. Also where the "Logout" menu item is.
Outcomes
See the Studio project on Github.
The text was updated successfully, but these errors were encountered: