-
Notifications
You must be signed in to change notification settings - Fork 196
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
[POC] Generate mermaid diagrams from harmonized index schemas #4918
base: main
Are you sure you want to change the base?
Conversation
👋 🤖 🤔 Hello, @pepopowitz! Did you make your changes in all the right places? These files were changed only in docs/. You might want to duplicate these changes in versioned_docs/version-8.6/.
You may have done this intentionally, but we wanted to point it out in case you didn't. You can read more about the versioning within our docs in our documentation guidelines. |
The preview environment relating to the commit a6a5600 has successfully been deployed. You can access it at https://preview.docs.camunda.cloud/pr-4918/index.html |
Things I'm directly seeking feedback on
And of course, anything else that's on your mind 😄 |
long memberKey | ||
join join | ||
} | ||
camunda-group ||--o{ camunda-group: "group:member" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I forgot to mention this but I snuck these join
treatments into the generated markdown manually, to see what they would look like. The scripts would need to be updated to accommodate these, if we decide we like them.
🪙 🙌 |
Zoomable images are back again, I see. @Sijoma was interested in Mermaid via this issue. He might have a larger example we could try in our docs to see how the experience would be. I fear most of our diagrams will end up being very large 🥲 .
This is probably a @ChrisKujawa question. It's part of platform unification and (IMO) users only really need to know about it for migrating from the multi-component concept. It's the Camunda platform core indices, but maybe with more capitalization.
Good question. I think it's part of the architecture (self-managed/reference-architecture/#architecture) but also part of the update guide (self-managed/operational-guides/update-guide/introduction/). I don't know how often it would be referenced outside the context of updating.
🤷♀️ Immediately, I wondered why we wouldn't offer multiple view/use options, but it doesn't have much to do with this presentation of info.
I think this is clear, but I also think I cheated by looking at other representations of this data. I also don't have much feedback on the remaining questions because the diagram looks fairly simple...? But maybe I'm missing something.
10x |
First of all I want to thank you @pepopowitz that you looked into this and spent your hackday on this topic 🚀 Really cool. 💪🏼
Yeah, I think it should just be like Indicies or maybe "Secondary Storage Schema" something. For C7 we call the page
I think it might make sense to have this separate, maybe even in the Reference section 🤔 But yeah in general we can move it around I guess if we find a better spot.
Good question. I was also thinking whether it would also work when we just generate markdown tables out of this, or something. I guess somehow it is interesting to have it visual especially if you want to show relations.
I agree it is a bit confusing, but we can workaround here via a different form or something 🤔 In general I liked that we have it to see that this is contained in the index, but yeah might be not fully clear.
The join is not really clear based on the visualization, what it actually is that multiple entities can live in the same index/table. Maybe we can visualize this differently, via combined rows or something.
I think it would be interesting, but might introduce more complexity.
At least 10 👍🏼 :D
I was thinking, as you described there is an issue with the size of the images, whether we could split them up by use case/context. For example, by related to identity, decision execution, process execution, task execution, etc. Wdyt? |
camunda-authorization { | ||
keyword id | ||
long ownerKey | ||
keyword ownerType | ||
keyword resourceType |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❓ One thing I was wondering was whether we could turn the values around. That we first have the name of the property then the type? I felt this is somehow more natural. What are your thoughts?
For example this is also done in the C7 ER diagram https://docs.camunda.org/manual/7.22/user-guide/process-engine/database/database-schema/#entity-relationship-diagrams
Maybe @aleksander-dytko or @ingorichtsmeier want to give some input here as well :) |
@pepopowitz some thoughts:
I think we should officially introduce "Primary Storage" and "Secondary Storage" In our docs to describe the data pipeline. This would be useful for further reference e.g. here VisualsI believe having a visual representation of the schema is useful to quickly orientate in C8. We could first show the list indices and have each line clickable, with the details of the schema. |
Should not be merged as-is. This PR exists for the purpose of soliciting feedback.
Description
My hackathon project, a proof of concept of #4870.
Adds a new page containing diagrams of the main & runtime harmonized indexes. Includes scripts to generate those diagrams from the upstream index schemas.
Preview
https://preview.docs.camunda.cloud/pr-4918/docs/next/self-managed/operational-guides/backup-restore/harmonized-indexes/
What's in this PR
camunda/camunda
repo as part of the workflow.1-combine-sources
) to combine all the JSON files into one big one (or technically two, to retain the distinction between main & runtime indexes). I'm undecided if this would be useful for a long-term workflow.2-generate-mermaid-diagrams
) to generate proper markdown to emit mermaid diagrams for all schemas in a JSON file.2-generate-mermaid-output
) to dump the generated markdown into a file.Implementation notes
object
types: an index defines nested types in its schema. I chose to represent these using ERD relationships, extracting the nested type into a separate entity (seecamunda-authorization
index). This is visually inaccurate according to ERDs; it is not a separate index; but it might be a better way to describe things?firstName
andlastName
under aname
, or this from our indexes:join
types: in this case, an item in an index references other items in the same index, through a defined relationship. This is not exactly a concept that a traditional Entity Relationship diagram handles out of the box. I tried joining a couple indexes to themselves (seecamunda-group
andtasklist-task
indexes) to represent this; I left the others as using the typejoin
.operate-decision
index includes adecisionRequirementsKey
property, which I think might refer to thekey
of an item in theoperate-decision-requirements
index.Other changes required before "done"
Decisions to be made/feedback I'm interested in
Because I think it will be easier for reviewers, I will post a list of questions in a comment, so that you can reply to it with any of your feedback.
When should this change go live?
Never, at least not in this form!