Skip to content

Optimize notification detail fetching with parallel API calls #92

Description

@senomorf

Performance Optimization: Parallel API Calls

Issue Description

Currently, the notification system makes sequential API calls when fetching instance details for both A1.Flex and E2.1.Micro instances, potentially impacting performance when both instances are successfully created.

Current Code (Lines 644-655)

if a1_instance_id=$(oci_cmd compute instance list \
    --compartment-id "$comp_id" \
    --display-name "${A1_FLEX_CONFIG[DISPLAY_NAME]}" \
    # ... sequential execution
    
if e2_instance_id=$(oci_cmd compute instance list \
    --compartment-id "$comp_id" \
    --display-name "${E2_MICRO_CONFIG[DISPLAY_NAME]}" \
    # ... sequential execution

Performance Impact

  • Sequential API calls increase total notification time
  • Could delay critical success notifications
  • Impacts user experience when both instances are created successfully

Recommended Solution

Implement parallel execution for instance detail fetching:

# Launch both detail fetches in parallel
temp_dir=$(mktemp -d)
(get_instance_details "$a1_instance_id" "A1.Flex (ARM)" > "$temp_dir/a1_details") &
(get_instance_details "$e2_instance_id" "E2.1.Micro (AMD)" > "$temp_dir/e2_details") &
wait

# Collect results
if [[ -f "$temp_dir/a1_details" ]]; then
    a1_details=$(cat "$temp_dir/a1_details")
fi
if [[ -f "$temp_dir/e2_details" ]]; then
    e2_details=$(cat "$temp_dir/e2_details")  
fi

# Cleanup
rm -rf "$temp_dir"

Expected Benefits

  • Reduced notification latency for dual-instance success scenarios
  • Improved user experience with faster success notifications
  • Better resource utilization of available network connections

Priority

Medium - Performance improvement that enhances user experience.

Context

Identified in PR #89 code review by Claude Code automated review system.

Acceptance Criteria

  • Implement parallel execution for instance detail fetching
  • Ensure proper error handling for parallel processes
  • Add temporary file cleanup for parallel execution results
  • Test performance improvement with timing measurements
  • Validate that all existing notification scenarios still work correctly

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions