Skip to content
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

Architecture and Dataflow Flowchart #124

Merged
merged 4 commits into from
Nov 6, 2024
Merged

Conversation

drewjj
Copy link
Collaborator

@drewjj drewjj commented Nov 5, 2024

PR Details

Description

This pull request includes a flowchart to help explain the complexities of the CV Manager and how it communicates throughout all of its microservices and databases.

The diagram was made using draw.io and the readme was updated to include the diagram.

How Has This Been Tested?

N/A

Types of changes

  • Defect fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that cause existing functionality to change)

Checklist:

  • My changes require new environment variables:
    • I have updated the docker-compose, K8s YAML, and all dependent deployment configuration files.
  • My changes require updates to the documentation:
    • I have updated the documentation accordingly.
  • My changes require updates and/or additions to the unit tests:
    • I have modified/added tests to cover my changes.
  • All existing tests pass.

Copy link
Member

@dmccoystephenson dmccoystephenson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great to me, this is awesome!

Copy link
Collaborator

@jacob6838 jacob6838 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few small comments:

  1. The Conflict Visualizer API reads from Kafka (live intersection data)
  2. Technically, the webapp and both APIs talk directly with Keycloak. If this adds too much clutter I guess its ok
  3. Arrow directions
    • The cvmanager API -> postgres arrow should be bi-directional
    • The Conflict Visualizer API -> MongoDB arrow should be bi-directional
    • The Conflict Visualizer API -> PostgreSQL arrow should be reversed (from postgres to API)

@John-Wiens
Copy link
Collaborator

I believe that RSU units receive BSMs from OBU units. I think we need an arrow from the OBU units to the RSU units. We could also consider an arrow from the OBU units back to itself because OBUs can communicate directly with one another via BSMs.

@drewjj
Copy link
Collaborator Author

drewjj commented Nov 5, 2024

A few small comments:

  1. The Conflict Visualizer API reads from Kafka (live intersection data)

  2. Technically, the webapp and both APIs talk directly with Keycloak. If this adds too much clutter I guess its ok

  3. Arrow directions

    • The cvmanager API -> postgres arrow should be bi-directional
    • The Conflict Visualizer API -> MongoDB arrow should be bi-directional
    • The Conflict Visualizer API -> PostgreSQL arrow should be reversed (from postgres to API)

I wrote the arrows from the perspective of the origin of the request.

@drewjj drewjj closed this Nov 5, 2024
@drewjj drewjj reopened this Nov 5, 2024
@jacob6838
Copy link
Collaborator

A few small comments:

  1. The Conflict Visualizer API reads from Kafka (live intersection data)

  2. Technically, the webapp and both APIs talk directly with Keycloak. If this adds too much clutter I guess its ok

  3. Arrow directions

    • The cvmanager API -> postgres arrow should be bi-directional
    • The Conflict Visualizer API -> MongoDB arrow should be bi-directional
    • The Conflict Visualizer API -> PostgreSQL arrow should be reversed (from postgres to API)

I wrote the arrows from the perspective of the origin of the request. Not sure how PosgreSQL would cause the API to do something unless it was periodici

ah ok, I was thinking of which way the information flowed

@drewjj
Copy link
Collaborator Author

drewjj commented Nov 5, 2024

I believe that RSU units receive BSMs from OBU units. I think we need an arrow from the OBU units to the RSU units. We could also consider an arrow from the OBU units back to itself because OBUs can communicate directly with one another via BSMs.

In my opinion, this is borderline out of scope since it is more of an edge architecture detail. I could see it being justifiable since it will explain the origin of the BSM message if someone was trying to trace the dataflow beyond the edge RSU forwarding them. I will add a line between the OBU and RSU.

@drewjj
Copy link
Collaborator Author

drewjj commented Nov 5, 2024

I am going to adjust this diagram to follow the dataflow as the name suggests to prevent confusion.

Copy link
Collaborator

@Michael7371 Michael7371 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Copy link
Collaborator

@jacob6838 jacob6838 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look great!

@drewjj drewjj merged commit f393f6b into develop Nov 6, 2024
9 checks passed
@drewjj drewjj deleted the Update/cvmanager_arch_diagram branch November 6, 2024 21:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants