-
Notifications
You must be signed in to change notification settings - Fork 17
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
Cu 86bzwgbuv update architecture section #294
Conversation
Task linked: CU-86bzwgbuv Update Architecture Section |
WalkthroughThe changes to the JeMPI documentation enhance clarity and update configurations across its microservices. Key modifications include renaming Kafka topics for better alignment with service functions, refining descriptions to highlight data flow improvements, and expanding details on transformation processes. These adjustments aim to streamline user understanding and ensure accurate representation of the updated architecture. Changes
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
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.
Actionable comments posted: 3
Outside diff range, codebase verification and nitpick comments (2)
documentation/architecture.md (2)
11-11
: The link requires authentication and is not publicly accessible.The provided link to the asynchronous flow diagram redirects to a Google login page, indicating that it is not accessible without authentication. Please make the document publicly accessible or provide an alternative method for users to access the diagram.
- File:
documentation/architecture.md
- Line: 11
Analysis chain
Verify the updated link.
Ensure that the new link to the asynchronous flow diagram is correct and accessible.
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the updated link to the asynchronous flow diagram. # Test: Check if the link is accessible. Expect: HTTP 200 OK status. curl -I https://drive.google.com/file/d/1G3_-BZNwRSOeriad6IbR6rFERQUnx1AK/view?usp=sharingLength of output: 1527
Tools
Markdownlint
11-11: Expected: h2; Actual: h4
Heading levels should only increment by one level at a time(MD001, heading-increment)
188-193
: Inconsistent Kafka topic name update.The Kafka topic name change for the
JeMPI_Linker
service is inconsistent. Both old and new Kafka topic names are present in the codebase. Please update the following references to ensure consistency:
documentation/architecture.md
devops/windows/base-docker-linux/helper/topics/topics-config.sh
devops/windows/base-docker-wsl/helper/topics/topics-config.sh
JeMPI_Apps/JeMPI_Bootstrapper/src/main/resources/data/kafka/kafkaBootStrapConfig.json
devops/linux/docker/helper/topics/topics-config.sh
JeMPI_Apps/JeMPI_LibShared/src/main/java/org/jembi/jempi/shared/models/GlobalConstants.java
JeMPI_Apps/JeMPI_EM_Scala/src/main/scala/org/jembi/jempi/em/kafka/Config.scala
Analysis chain
Verify Kafka topic name change consistency.
Ensure that the Kafka topic name change for the
JeMPI_Linker
service is consistent throughout the documentation and the codebase.
Verify Kafka topic name change consistency.
Ensure that the Kafka topic name change for the
JeMPI_Linker
service is consistent throughout the documentation and the codebase.
Verify Kafka topic name change consistency.
Ensure that the Kafka topic name change for the
JeMPI_Linker
service is consistent throughout the documentation and the codebase.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names. Expect: Only occurrences of the new Kafka topic name. rg --type python -A 5 $'_TOPIC_PATIENT_LINKER="JeMPI-patient-linker"' rg --type python -A 5 $'_TOPIC_INTERACTION_LINKER="JeMPI-interaction-linker"'Length of output: 211
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names. Expect: Only occurrences of the new Kafka topic name. rg '_TOPIC_PATIENT_LINKER="JeMPI-patient-linker"' --glob '*.py' -A 5 rg '_TOPIC_INTERACTION_LINKER="JeMPI-interaction-linker"' --glob '*.py' -A 5Length of output: 149
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names. Expect: Only occurrences of the new Kafka topic name. rg 'JeMPI-patient-linker' -A 5 rg 'JeMPI-interaction-linker' -A 5 rg 'JeMPI-patient-em' -A 5 rg 'JeMPI-interaction-em' -A 5Length of output: 9814
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- documentation/architecture.md (4 hunks)
Additional context used
Markdownlint
documentation/architecture.md
11-11: Expected: h2; Actual: h4
Heading levels should only increment by one level at a time(MD001, heading-increment)
13-13: null
Images should have alternate text (alt text)(MD045, no-alt-text)
42-42: null
Emphasis used instead of a heading(MD036, no-emphasis-as-heading)
171-171: null
Images should have alternate text (alt text)(MD045, no-alt-text)
171-171: null
Images should have alternate text (alt text)(MD045, no-alt-text)
LanguageTool
documentation/architecture.md
[misspelling] ~178-~178: Did you mean “you”?
Context: ...orithm (quality (m) and the uniqueness (u) per field). This object is used in the...(U_TO_YOU)
Additional comments not posted (8)
documentation/architecture.md (8)
58-58
: Verify Kafka topic name change consistency.Ensure that the Kafka topic name change for the
JeMPI_Controller
service is consistent throughout the documentation and the codebase.Verification successful
Verification successful.
The Kafka topic name for the
JeMPI_Controller
service has been consistently updated to_TOPIC_INTERACTION_CONTROLLER="JeMPI-interaction-controller"
throughout the documentation and codebase. No occurrences of the old topic name were found.
documentation/architecture.md
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names. Expect: Only occurrences of the new Kafka topic name. rg --type python -A 5 $'_TOPIC_PATIENT_CONTROLLER="JeMPI-patient-controller"' rg --type python -A 5 $'_TOPIC_INTERACTION_CONTROLLER="JeMPI-interaction-controller"'Length of output: 227
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names in Python files and documentation files. # Expect: Only occurrences of the new Kafka topic name. # Search within Python files rg --glob '*.py' -A 5 $'_TOPIC_PATIENT_CONTROLLER="JeMPI-patient-controller"' rg --glob '*.py' -A 5 $'_TOPIC_INTERACTION_CONTROLLER="JeMPI-interaction-controller"' # Search within documentation files rg --glob '*.md' -A 5 $'_TOPIC_PATIENT_CONTROLLER="JeMPI-patient-controller"' rg --glob '*.md' -A 5 $'_TOPIC_INTERACTION_CONTROLLER="JeMPI-interaction-controller"'Length of output: 1225
36-39
: Verify the example input file.Ensure that the example input file provided for the
JeMPI_AsyncReceiver
service is correct.Verification successful
Verify the example input file.
The example input file format for the
JeMPI_AsyncReceiver
service is correctly included in thedocumentation/architecture.md
file. No issues were found.
documentation/architecture.md
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the example input file for the `JeMPI_AsyncReceiver` service. # Test: Check if the example input file format matches the expected format. rg --type csv -A 5 $'ID,Given_Name,Family_Name,Gender_at_Birth,Date_of_Birth,City,Phone_Number,National_ID'Length of output: 255
Script:
#!/bin/bash # Description: Verify the example input file for the `JeMPI_AsyncReceiver` service. # Test: Check if the example input file format matches the expected format across all files. rg -A 5 $'ID,Given_Name,Family_Name,Gender_at_Birth,Date_of_Birth,City,Phone_Number,National_ID'Length of output: 627
157-161
: Verify Kafka topic name change consistency.Ensure that the Kafka topic name change for the
JeMPI_Controller
service is consistent throughout the documentation and the codebase.Verification successful
Verified Kafka topic name change consistency.
The Kafka topic name
_TOPIC_INTERACTION_CONTROLLER="JeMPI-interaction-controller"
is consistently used in the documentation, and there are no occurrences of the old Kafka topic name_TOPIC_PATIENT_CONTROLLER="JeMPI-patient-controller"
.
documentation/architecture.md
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names. Expect: Only occurrences of the new Kafka topic name. rg --type python -A 5 $'_TOPIC_PATIENT_CONTROLLER="JeMPI-patient-controller"' rg --type python -A 5 $'_TOPIC_INTERACTION_CONTROLLER="JeMPI-interaction-controller"'Length of output: 227
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names. Expect: Only occurrences of the new Kafka topic name. rg -A 5 $'_TOPIC_PATIENT_CONTROLLER="JeMPI-patient-controller"' rg -A 5 $'_TOPIC_INTERACTION_CONTROLLER="JeMPI-interaction-controller"'Length of output: 1031
53-54
: Verify Kafka topic name change consistency.Ensure that the Kafka topic name change for the
JeMPI_ETL
service is consistent throughout the documentation and the codebase.Verification successful
Verify Kafka topic name change consistency.
The Kafka topic name
_TOPIC_INTERACTION_ETL="JeMPI-interaction-etl"
is consistently used in thedocumentation/architecture.md
file, and there are no occurrences of the old topic name_TOPIC_PATIENT_ASYNC_PREPROCESSOR="JeMPI-async-etl"
in the codebase.
documentation/architecture.md
: Kafka topic:_TOPIC_INTERACTION_ETL="JeMPI-interaction-etl"
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names. Expect: Only occurrences of the new Kafka topic name. rg --type python -A 5 $'_TOPIC_PATIENT_ASYNC_PREPROCESSOR="JeMPI-async-etl"' rg --type python -A 5 $'_TOPIC_INTERACTION_ETL="JeMPI-interaction-etl"'Length of output: 212
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names across all files. rg -A 5 '_TOPIC_PATIENT_ASYNC_PREPROCESSOR="JeMPI-async-etl"' rg -A 5 '_TOPIC_INTERACTION_ETL="JeMPI-interaction-etl"'Length of output: 552
168-169
: Verify Kafka topic name change consistency.Ensure that the Kafka topic name change for the
JeMPI_EM
service is consistent throughout the documentation and the codebase.Verification successful
Verify Kafka topic name change consistency.
Ensure that the Kafka topic name change for the
JeMPI_EM
service is consistent throughout the documentation and the codebase.
Verified Kafka topic name change consistency.
The Kafka topic name change for the
JeMPI_EM
service is consistent throughout the documentation and the codebase. No occurrences of the old Kafka topic name were found.
documentation/architecture.md
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names. Expect: Only occurrences of the new Kafka topic name. rg --type python -A 5 $'_TOPIC_PATIENT_EM="JeMPI-patient-em"' rg --type python -A 5 $'_TOPIC_INTERACTION_EM="JeMPI-interaction-em"'Length of output: 195
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names. Expect: Only occurrences of the new Kafka topic name. rg -A 5 '_TOPIC_PATIENT_EM="JeMPI-patient-em"' rg -A 5 '_TOPIC_INTERACTION_EM="JeMPI-interaction-em"'Length of output: 941
67-147
: Verify the example Kafka message.Ensure that the example Kafka message provided for the
JeMPI_Controller
service is correct and accurately reflects the expected format.Verification successful
Let's refine our approach to verify the example Kafka message for the
JeMPI_Controller
service by searching for relevant JSON structures and keywords.
Let's broaden our search to include other file types and look for relevant keywords associated with Kafka messages and the
JeMPI_Controller
service.
Verified the example Kafka message.
The example Kafka message provided for the
JeMPI_Controller
service indocumentation/architecture.md
is correct and accurately reflects the expected format.
documentation/architecture.md
: Contains detailed descriptions and example Kafka messages for theJeMPI_Controller
service.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the example Kafka message for the `JeMPI_Controller` service. # Test: Check if the example Kafka message format matches the expected format. rg --type json -A 10 $'"contentType": "BATCH_INTERACTION"'Length of output: 59
Script:
#!/bin/bash # Description: Verify the example Kafka message for the `JeMPI_Controller` service. # Test: Search for JSON files containing the `JeMPI_Controller` service and inspect the Kafka message structure. rg --type json -A 10 'JeMPI_Controller'Length of output: 39
Script:
#!/bin/bash # Description: Verify the example Kafka message for the `JeMPI_Controller` service. # Test: Search for files containing the `JeMPI_Controller` service and inspect the Kafka message structure. rg -A 10 'JeMPI_Controller'Length of output: 11835
45-45
: Verify Kafka topic name change consistency.Ensure that the Kafka topic name change for the
JeMPI_AsyncReceiver
service is consistent throughout the documentation and the codebase.Verification successful
Kafka topic name change verified successfully.
The Kafka topic name
_TOPIC_INTERACTION_ETL="JeMPI-interactions-etl"_
has been consistently updated in the documentation. No instances of the old topic name_TOPIC_INTERACTION_ASYNC_ETL="JeMPI-async-etl"_
were found in the codebase or documentation.
documentation/architecture.md
: Kafka topic name updated.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Test: Search for the old and new Kafka topic names. Expect: Only occurrences of the new Kafka topic name. rg --type python -A 5 $'_TOPIC_INTERACTION_ASYNC_ETL="JeMPI-async-etl"' rg --type python -A 5 $'_TOPIC_INTERACTION_ETL="JeMPI-interactions-etl"'Length of output: 208
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Locate all Python files and search for the old Kafka topic name. fd -e py -x rg '_TOPIC_INTERACTION_ASYNC_ETL="JeMPI-async-etl"' {} # Locate all Python files and search for the new Kafka topic name. fd -e py -x rg '_TOPIC_INTERACTION_ETL="JeMPI-interactions-etl"' {}Length of output: 142
Script:
#!/bin/bash # Description: Verify the consistency of the Kafka topic name change. # Search for the old Kafka topic name in all files. rg '_TOPIC_INTERACTION_ASYNC_ETL="JeMPI-async-etl"' # Search for the new Kafka topic name in all files. rg '_TOPIC_INTERACTION_ETL="JeMPI-interactions-etl"' # Specifically search in documentation files for the new Kafka topic name. fd -e md -x rg '_TOPIC_INTERACTION_ETL="JeMPI-interactions-etl"' {}Length of output: 334
Script:
#!/bin/bash # Description: Verify the consistency of Kafka topic names. # Search for any Kafka topic patterns in the codebase. rg '_TOPIC_INTERACTION_' --glob '*.py' # Search for any Kafka topic patterns in documentation files. fd -e md -x rg '_TOPIC_INTERACTION_' {}Length of output: 723
19-19
: Verify the accuracy of the service description.Ensure that the updated description of the
JeMPI_AsyncReceiver
service accurately reflects its functionality.
@@ -8,18 +8,16 @@ The JeMPI Client Registry is a system that incorporates a microservice architect | |||
|
|||
**Below the synchronous and asynchronous flow diagram.** | |||
|
|||
#### [Asynchronous flow](https://drive.google.com/file/d/1rcbF3UJ5Lh-4bjXl8GVpJVnYxA1diRjl/view?usp=sharing) <a href="#_2v012h2bohjt" id="_2v012h2bohjt"></a> | |||
#### [Asynchronous flow](https://drive.google.com/file/d/1G3_-BZNwRSOeriad6IbR6rFERQUnx1AK/view?usp=sharing) <a href="#_2v012h2bohjt" id="_2v012h2bohjt"></a> | |||
|
|||
![](.gitbook/assets/0) |
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.
Add alternate text for images.
Images should have alternate text for accessibility.
- ![](.gitbook/assets/0)
+ ![Asynchronous Flow Diagram](.gitbook/assets/0)
- ![](.gitbook/assets/4) ![](.gitbook/assets/5)
+ ![JeMPI Controller Flow Diagram](.gitbook/assets/4) ![JeMPI Controller Workflow](.gitbook/assets/5)
Also applies to: 171-171
Tools
Markdownlint
13-13: null
Images should have alternate text (alt text)(MD045, no-alt-text)
|
||
![](.gitbook/assets/0) | ||
|
||
## JeMPI_AsyncReceiver <a href="#_6om7ih1t1k41" id="_6om7ih1t1k41"></a> | ||
|
||
**Description:** A microservice that sends the content of an uploaded csv file to the JeMPI_ETL service. the JeMPI_AsyncReciever service produces kafka messages where each message has a row from the CSV file uploaded. it will then be saved under a kafka topic. | ||
|
||
The base version of JeMPI supports only 10 columns in the following order **\[for the current version]**: | ||
The base version uses a reference implementation with the fields below: |
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.
Use heading instead of emphasis.
Avoid using emphasis for headings.
- **String** auxId,\
- **String** givenName,\
- **String** familyName,\
- **String** gender,\
- **String** dob,\
- **String** city,\
- **String** phoneNumber,\
- **String** nationalId
+ ### String Fields
+ - auxId
+ - givenName
+ - familyName
+ - gender
+ - dob
+ - city
+ - phoneNumber
+ - nationalId
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
The base version uses a reference implementation with the fields below: | |
The base version uses a reference implementation with the fields below: | |
### String Fields | |
- auxId | |
- givenName | |
- familyName | |
- gender | |
- dob | |
- city | |
- phoneNumber | |
- nationalId |
@@ -8,18 +8,16 @@ The JeMPI Client Registry is a system that incorporates a microservice architect | |||
|
|||
**Below the synchronous and asynchronous flow diagram.** | |||
|
|||
#### [Asynchronous flow](https://drive.google.com/file/d/1rcbF3UJ5Lh-4bjXl8GVpJVnYxA1diRjl/view?usp=sharing) <a href="#_2v012h2bohjt" id="_2v012h2bohjt"></a> | |||
#### [Asynchronous flow](https://drive.google.com/file/d/1G3_-BZNwRSOeriad6IbR6rFERQUnx1AK/view?usp=sharing) <a href="#_2v012h2bohjt" id="_2v012h2bohjt"></a> |
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.
Fix heading level increment.
The heading level should increment by one level at a time.
- #### [Asynchronous flow](https://drive.google.com/file/d/1G3_-BZNwRSOeriad6IbR6rFERQUnx1AK/view?usp=sharing) <a href="#_2v012h2bohjt" id="_2v012h2bohjt"></a>
+ ### [Asynchronous flow](https://drive.google.com/file/d/1G3_-BZNwRSOeriad6IbR6rFERQUnx1AK/view?usp=sharing) <a href="#_2v012h2bohjt" id="_2v012h2bohjt"></a>
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
#### [Asynchronous flow](https://drive.google.com/file/d/1G3_-BZNwRSOeriad6IbR6rFERQUnx1AK/view?usp=sharing) <a href="#_2v012h2bohjt" id="_2v012h2bohjt"></a> | |
### [Asynchronous flow](https://drive.google.com/file/d/1G3_-BZNwRSOeriad6IbR6rFERQUnx1AK/view?usp=sharing) <a href="#_2v012h2bohjt" id="_2v012h2bohjt"></a> |
Tools
Markdownlint
11-11: Expected: h2; Actual: h4
Heading levels should only increment by one level at a time(MD001, heading-increment)
Summary by CodeRabbit
JeMPI_AsyncReceiver
and enhanced flexibility in theJeMPI_Controller
service.JeMPI_API
service description.