Skip to content

Conversation

@franccesco
Copy link
Owner

Summary

This PR adds async bulk operations to the Bloomy Python SDK, enabling efficient concurrent processing of multiple API requests with configurable rate limiting. Performance benchmarks show 77%+ improvements over sequential operations.

Key Changes

New Features

  • Async bulk create operations (create_many) for:
    • Todos
    • Issues
    • Goals
    • Meetings
  • Async bulk read operation (get_many) for meetings
  • Configurable rate limiting with max_concurrent parameter
  • Best-effort execution with detailed error tracking via BulkCreateResult

Bug Fixes

  • Fixed todo creation endpoint for meetings: todo/createmeetingtodoL10/{meeting_id}/todos
  • Fixed meeting attendees field mapping: IdUserId
  • Fixed meeting issues field mappings to match Issue model

Documentation

  • Added comprehensive bulk operations guide with code examples
  • Included real-world performance benchmarks
  • Documented error handling patterns and best practices

Testing

  • Added extensive test coverage for all bulk operations
  • Tests verify concurrent execution behavior
  • Tests ensure proper error handling for partial failures

Performance Impact

Real-world benchmarks show significant improvements:

  • Creating 10 todos: 1.97s → 0.45s (77% faster)
  • Creating 10 issues: 2.03s → 0.31s (85% faster)
  • Creating 10 goals: 2.08s → 0.35s (83% faster)

Breaking Changes

None. All changes are additive and maintain backward compatibility.

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

- Fix todo creation endpoint for meetings from 'todo/createmeetingtodo' to 'L10/{meeting_id}/todos'
- Fix meeting attendees field mapping (Id → UserId) to match MeetingAttendee model
- Update field mappings for meeting issues to match Issue model structure
- These fixes ensure proper compatibility with the Bloomy API
- Implement create_many method for concurrent goal creation
- Add configurable rate limiting with max_concurrent parameter
- Return BulkCreateResult with successful and failed operations
- Support best-effort execution with detailed error tracking
- Add tests for create_many methods across todos, issues, goals, and meetings
- Add tests for get_many method in meetings operations
- Test concurrent execution with rate limiting
- Test error handling and partial failures
- Update existing tests to support new async patterns
- Ensure proper field mappings are tested
- Document create_many methods for todos, issues, goals, and meetings
- Document get_many method for meetings
- Add real-world performance benchmarks showing 77%+ improvements
- Provide code examples for all async bulk operations
- Include best practices for rate limiting and error handling
@franccesco franccesco merged commit fe0a174 into main Jul 29, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant