Skip to content

Firestore Storage #2

@prosdev

Description

@prosdev

Phase: 2 - Storage Layer
Estimated Effort: 3-4 hours
Tasks: Task 4 from specs/core-pipeline/tasks.md

Checklist

Task 4: Implement Firestore Storage (3-4 hours)

  • Create FirestoreEventStore (implements EventStore Protocol)
  • Implement write() with batch operations (max 500 docs)
  • Implement read() by stream
  • Implement query() with filters
  • Add retry logic for transient errors
  • Create FirestoreErrorStore (implements ErrorStore Protocol)
  • Implement write_error()
  • Implement query_errors()
  • Write unit tests (mocked Firestore client)
  • Write integration tests (Firestore emulator)

Acceptance Criteria

  • FirestoreEventStore implements EventStore Protocol
  • Batch writes work (tested with 100+ events)
  • Document ID format: {stream}/{timestamp}_{uuid}
  • Retry logic handles transient errors
  • FirestoreErrorStore captures invalid events
  • Unit tests pass
  • Integration tests with emulator pass

Files to Create

src/eventkit/stores/firestore.py
tests/unit/stores/test_firestore.py
tests/integration/test_firestore_integration.py

Dependencies: Issue #1
User Stories: Story 2 (Stream Isolation), Story 5 (Batch Processing), Story 6 (Dead Letter Queue)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions