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

Preparing for more users: code analysis and structural improvements #1643

Open
2 tasks
emmajclegg opened this issue Dec 29, 2024 · 1 comment
Open
2 tasks
Labels
Maintenance Upkeep or maintenance-related tasks ODS Issue initiated by ODS

Comments

@emmajclegg
Copy link
Collaborator

emmajclegg commented Dec 29, 2024

IATI Publisher's user base continues to grow and we want to ensure the tool can handle this with a minimum level of performance.

We need to understand the impact of more users on different parts of the tool and identify ways the tool could be improved for better scalability. We would then prioritise these based on effort and value.

Possible tasks:

  • Identify areas where more simultaneous users will inevitably slow Publisher down due to architecture (e.g. single worker queue for publishing data)
  • Identify, prioritise and implement possible improvements for better scalability

This issues relates to #1656 (monitoring to prepare for more users)

@emmajclegg emmajclegg added ODS Issue initiated by ODS Maintenance Upkeep or maintenance-related tasks labels Dec 29, 2024
@emmajclegg emmajclegg changed the title Placeholder - Ensure scalability for increasing user volumes Guarantee performance for increasing user base Dec 30, 2024
@robredpath
Copy link
Collaborator

I've heard informal reports of IATI Publisher being "slow" or "unresponsive" but they've always been short-lived and hard to replicate - which isn't much use to a developer trying to track down the issues!

I would suggest grouping the tasks you've described into two groups, and adding a couple more.

Group 1: Metrication and Monitoring

Set up monitoring of volumes of active vs. total registered users per month to track usage over time.

Ensure automated alerts and logs are in place

And, implement user-centric monitoring of performance for key pages. For example, how long does it take between clicking the "Sign in" button and the page finishing loading? Or, how often does a page appear empty to a user because a query to get the activities has timed out? That will then let us see which pages are slowest, and help us prioritise or identify areas for future investigation.

Group 2: Code Analysis & Structural Improvements

Assess the impact of more concurrent users on IATI Publisher's different processes - e.g. time taken to import, publish or load data in the interface.

And, identify areas where more simultaneous users inevitably will slow things down due to architecture. For example, I've read that IATI Publisher has a single worker for the publishing queue; what would be involved in increasing the number of workers for that queue?

Given that I'm suggesting splitting them up, it probably makes sense to separate this into two issues once work gets underway.

@emmajclegg emmajclegg changed the title Guarantee performance for increasing user base Preparing for more users: Code analysis and structural Improvements Jan 7, 2025
@emmajclegg emmajclegg changed the title Preparing for more users: Code analysis and structural Improvements Preparing for more users: code analysis and structural improvements Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Maintenance Upkeep or maintenance-related tasks ODS Issue initiated by ODS
Projects
None yet
Development

No branches or pull requests

2 participants