Skip to content

Implement DynamoDB client #325

@Oluwaseyi89

Description

@Oluwaseyi89

Problem Statement

The DynamoDB client is completely unimplemented. The file pkg/aws/dynamodb_client.go is gated with //go:build future, so it is excluded from all production builds and contains only a stub. As a result, the platform cannot store or manage WebSocket connection IDs and session state in DynamoDB, blocking scalable, serverless management of real-time connections and stateful event workflows.

Social Media Link

Let's collaborate on Discord. And ensure to star our repo.

Context

  • No client exists for interacting with AWS DynamoDB from the backend.
  • WebSocket connection management and session state persistence are not possible in a distributed, serverless environment.
  • Real-time features and Lambda handlers require DynamoDB for scalable, low-latency state storage.

Requirements

  • Implement a Go client in pkg/aws/dynamodb_client.go to interact with AWS DynamoDB for storing and retrieving WebSocket connection IDs and session state.
  • Support CRUD operations for connection records, session tokens, and related metadata.
  • Integrate with the WebSocket connection manager, notification service, and Lambda handlers.
  • Ensure secure handling of AWS credentials and environment-based configuration.
  • Add error handling, logging, and retry logic for failed DynamoDB operations.
  • Add unit and integration tests for the client, including edge cases (e.g., conditional writes, throttling, expired sessions).
  • Remove the //go:build future tag so the implementation is included in production builds.

Acceptance Criteria

  • pkg/aws/dynamodb_client.go contains a production-ready DynamoDB client implementation.
  • The platform can store and manage WebSocket connection IDs and session state in DynamoDB.
  • The client is integrated with real-time connection management and notification workflows.
  • Unit and integration tests cover all major code paths and error scenarios.
  • The feature is included in production builds (no //go:build future tag).

Definition of Done

  • All requirements and acceptance criteria are met.
  • Code is reviewed, merged, and deployed to staging.
  • Documentation (README, code comments) is updated.
  • No critical bugs or regressions are present.
  • Stakeholders can rely on scalable, serverless WebSocket state management via DynamoDB.

Directory to Work On

  • project-portal/project-portal-backend

Metadata

Metadata

Assignees

Labels

AWSThis issue integrates AWS services.Stellar WaveIssues in the Stellar wave programbackendThis issue is about building backend API services.ginThis issue is to be implemented with the `golang` `gin` framework for backend APIs.golangThis issue is to be implemented with `golang` programming language.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions