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

Narrow the focus of rdm tooling for Go based tools to working with Postgres #76

Open
rsdoiel opened this issue Feb 22, 2024 · 1 comment
Assignees
Labels
refactor Changes to the organization or implementation of Go based code

Comments

@rsdoiel
Copy link
Member

rsdoiel commented Feb 22, 2024

RDM has a wonderful JSON API but it is (by necessity) rate limited. This makes balancing the performances characteristics for what is needed for internal processing as compared to public access a challenge. The RDM database schema and architecture is well constructed via the ORM Invenio employees. This means that with a little reverse engineering we can recreate the JSON input and puts right from the database itself by taking advantage of Postgres SELECT, VIEWS and FUNCTIONS. irdmtools for the Go elements should work directly with the database archicture except in record creation or updating. The Go based tooling can be simplify by removing support for the JSON API when not required for reading data.

@rsdoiel rsdoiel added the refactor Changes to the organization or implementation of Go based code label Feb 22, 2024
@rsdoiel rsdoiel self-assigned this Feb 22, 2024
@rsdoiel rsdoiel added this to the Stable production usage milestone Feb 22, 2024
@rsdoiel
Copy link
Member Author

rsdoiel commented Apr 13, 2024

I've removed JSON API from many of the funcs in invenio_api.go. Need to update tests to reflect that. Also need to consolidate duplicate code shapes then cleanup the remaning codebase and update the package level documentation comments to reflect the changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor Changes to the organization or implementation of Go based code
Projects
None yet
Development

No branches or pull requests

1 participant