alxjrvs / alxjrvs/orrey

Google Calendar event projection via the outbox queue

Closed
#19 0 comments 0 reactions 0 assignees View on GitHub
phase:1
Dominant language
HTML
Stars
0
Forks
0
Avg merge
1h 34m
Merged PRs (30d)
23

Description

The second outbound projection, using the service-account pattern proved in phase 0. Writes go only to the Orrey calendar — **never to the user's Social calendar.**

- [ ] Queue message shape for "project session N to Google"; same producer as the Discord event projection.
- [ ] Deterministic base32hex event id per session, stored in `calendar_links.gcal_event_id`.
- [ ] Upsert: `insert`, and on `409` `update`. Fingerprint the content; skip when unchanged; record `synced_at` / `last_error`.
- [ ] Service-account JWT → access token, cached for its lifetime in the Worker (no refresh token exists to expire).
- [ ] Idempotent on redelivery; failures to the DLQ with `last_error` set.

Echo-loop prevention (the Google *return* path) is phase 7; the fingerprint stored here is what makes that possible later.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the existing Discord event projection and its shared producer, then trace the outbox queue and Worker boundaries. Use calendar_links.gcal_event_id, synced_at, and last_error as the persistence anchors; done means idempotent Google Calendar writes to the Orrey calendar, cached service-account access, unchanged-content skips, and DLQ handling on failure.

Written by the indexing model from the issue text.

Assessment

Domain
cloud, databases, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.