Skip to content

Performance Issue: Add Server-Side Pagination to task-info API for Large Workflows #2685

@aboutrajan

Description

@aboutrajan
Image

Hi Spiff Team,

Summary

The task-info API returns all completed task nodes for a process instance with no server-side pagination. In large workflows, this results in very large payloads, causing backend latency and degraded UI performance. Adding pagination would significantly improve scalability and user experience.

Affected API

GET /process-instances/{modified_process_model_identifier}/{process_instance_id}/task-info

Example:

/process-instances/intermediate-playground2:intermediate-playground-sri/1234/task-info?most_recent_tasks_only=true

Problem Details

Backend Impact

  • API returns all completed task nodes without pagination.
  • Swagger documentation shows no parameters for limiting or paging results.
  • Large workflows can return 1,400+ task events.
  • Each task includes instruction data of ~34 KB, resulting in a total response size of ~7 MB.
  • Large responses cause increased response time and backend load.

UI Impact

  • Loading large task-info slow down the UI and negatively impact user experience.

Proposed Enhancement

Add server-side pagination support to the task-info API to enable incremental and on-demand data fetching.

Suggested parameters:

page / offset

page_size or limit

Optional improvements:

  • Lightweight response mode excluding large instruction payloads unless explicitly requested.

Acceptance Criteria

  • task-info API supports server-side pagination
  • Clients can limit the number of task records returned per request
  • API response includes pagination metadata (e.g. total records, page info)
  • Backward compatibility is preserved for existing consumers
  • Swagger documentation is updated with the new parameters

Benefits

  • Reduced response payload size
  • Improved backend performance
  • Faster UI rendering and better user experience
  • Better scalability for large workflows

Please let us know if additional details, would be helpful.

Thanks for considering this enhancement.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    New Issue

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions