-
Notifications
You must be signed in to change notification settings - Fork 67
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
all: fix grammar, typos, reformat tables #586
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -10,7 +10,7 @@ The guide provides a high-level overview of the core software architecture of In | |||||
|
||||||
## Layers | ||||||
|
||||||
InvenioRDM has a layered architecture that consistent of three layers: | ||||||
InvenioRDM has a layered architecture that consists of three layers: | ||||||
|
||||||
- Presentation layer | ||||||
- Service layer | ||||||
|
@@ -24,17 +24,17 @@ The diagram below shows a simplified view of the data flow in the architecture. | |||||
|
||||||
![Architecture layers](../img/architecture.svg) | ||||||
|
||||||
*The presentation layer* parses incoming requests and routes them to service layer. This involves sending and receiving data in multiple different formats and translating these into an internal representation, as well as e.g. parsing arguments from an HTTP request (e.g parsing the query string parameters). | ||||||
*The presentation layer* parses incoming requests and routes them to service layer. This involves sending and receiving data in multiple different formats and translating these into an internal representation. For instance, this includes parsing arguments from an HTTP request (e.g., parsing the query string parameters). | ||||||
|
||||||
*The service layer* is completely independent from the presentation layer and can be used by many different presentation interfaces such as REST APIs, CLIs, Celery tasks. The service layer contains the overall control flow and is responsible for e.g. checking permissions and performing semantic data validation. | ||||||
*The service layer* is completely independent of the presentation layer and can be used by many different presentation interfaces such as REST APIs, CLIs, Celery tasks. The service layer contains the overall control flow and is responsible for e.g. checking permissions and performing semantic data validation. | ||||||
|
||||||
*The data access layer* is responsible for ensuring data integrity, harmonizing data access to different storages as well as fetching and storing the data in the underlying systems. | ||||||
|
||||||
The data flow between the layers is strictly limited to some few well-defined objects to ensure a clean separation of concerns. The presentation layer communicates with the service layer via a e.g. a record projection (i.e. a view of a record localised to a specific identity). The service layer communicates with the data access layer via e.g. a record entity that provides data abstraction, syntactic data validation, and a strong programmatic API. | ||||||
The data flow between the layers is strictly limited to some few well-defined objects to ensure a clean separation of concerns. The presentation layer communicates with the service layer via a record projection (i.e. a view of a record localised to a specific identity). The service layer communicates with the data access layer via a record entity that provides data abstraction, syntactic data validation, and a strong programmatic API. | ||||||
|
||||||
!!! tip "Tip: Where do you belong?" | ||||||
|
||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just below is another fix to do: "where you code belongs" -> "where your code belongs" |
||||||
A key question you should always ask yourself when designing or writing code is where you code belongs in the architecture: | ||||||
A key question you should always ask yourself when designing or writing code is where your code belongs in the architecture: | ||||||
|
||||||
- Is it a presentation, service, or data access layer object? | ||||||
- Is the object crossing boundaries between layers? | ||||||
|
@@ -65,12 +65,12 @@ The data access layer serves two purposes: | |||||
|
||||||
- Provide a strong programmatic API that produce a clean, simple and reliable | ||||||
control flow in the service layer. | ||||||
- Persist our business objects on data storage in an reliable and performant | ||||||
- Persist our business objects on data storage in a reliable and performant | ||||||
way. | ||||||
|
||||||
!!! tip "Tip: Messy service layer?" | ||||||
|
||||||
If you service layer code looks messy, likely you need to work on your data | ||||||
If your service layer code looks messy, you may need to work on your data | ||||||
access layer. | ||||||
|
||||||
A typical example is the service layer doing data-wrangling with | ||||||
|
@@ -137,7 +137,7 @@ The search mappings define how records are indexed and made searchable. Records | |||||
|
||||||
Dumpers are responsible for dumping and loading prior to storing/fetching records on secondary storage (e.g. the search index), and play a key role for harmonizing data access to records from primary and secondary storages. | ||||||
|
||||||
Dumpers are specific to a secondary storage system (e.g. an search dumper, a file dumper, ...). | ||||||
Dumpers are specific to a secondary storage system (e.g. a search dumper, a file dumper, ...). | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
The dump and load of a dumper MUST be idempotent - i.e. ``record == Record.load(record.dump())``. This ensures that independently of if a record was retrieved from primary or secondary storage, it has the same data and works in the same manner. | ||||||
|
||||||
|
@@ -341,7 +341,7 @@ The resource config are used for dependency injection to | |||||
|
||||||
## Performance considerations | ||||||
|
||||||
Performance is of very high importance for InvenioRDM. There's however often | ||||||
Performance is of very high importance for InvenioRDM. There are however often | ||||||
trade-offs to be made. | ||||||
|
||||||
**Query vs indexing speed** | ||||||
|
@@ -350,7 +350,7 @@ For InvenioRDM query speed is more important that fast indexing speeds. This mea | |||||
we'll sometimes denormalize data to have high enough query speed. Once we denormalize | ||||||
data we immediately must also deal with stale data and cache invalidation. | ||||||
|
||||||
The version counter on on all records is instrumental in being able to manage | ||||||
The version counter on all records is instrumental in being able to manage | ||||||
the speed. | ||||||
|
||||||
**Database vs search engine** | ||||||
|
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
👍 hard "h" for "high"