Skip to content

Implement Threads service (service + CI/CD + bootstrap) #1

@rowan-stein

Description

@rowan-stein

User Request

Implement the Threads messaging service end-to-end:

  1. Implement the gRPC service in agynio/threads based on the proto published in agynio/api (PR #23, merged)
  2. Set up CI and release workflows, publish first version
  3. Add the service to agynio/bootstrap_v2

Architecture Reference

Implementation Specification

Full spec prepared by researcher at /workspace/THREADS_IMPLEMENTATION_SPEC.md. Key deliverables:

Service Implementation (agynio/threads)

  • Go gRPC service implementing ThreadsService (8 RPCs) from buf.build/agynio/api
  • Postgres data store (pgx) with 4 tables: threads, thread_participants, messages, message_recipients
  • Notification publishing: on SendMessage, calls NotificationsService.Publish with event message.created, room thread_participant:{participantId}
  • Config: DATABASE_URL, GRPC_ADDRESS, NOTIFICATIONS_ADDRESS env vars

Reference Repos (patterns to follow)

  • agynio/agent-state — Postgres-backed Go gRPC service (pgx, migrations, buf codegen, Dockerfile)
  • agynio/notifications — Go gRPC service (Makefile, Helm chart without base-chart, CI/release workflows)

CI/CD Workflows

  • ci.yml — PR: buf codegen, lint, test, build
  • release.yml — main push: edge image; tag push: semver image + Helm chart to GHCR

Helm Chart

  • charts/threads/ — deployment, service, serviceaccount templates
  • gRPC port 50051, DATABASE_URL + NOTIFICATIONS_ADDRESS env vars

Bootstrap Integration (agynio/bootstrap_v2)

  • Add threads-db (Postgres) + threads (service) ArgoCD applications
  • Add corresponding variables and locals in stacks/platform/

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