Skip to content

Commit bde9c2d

Browse files
committed
Merge changes from #1960
1 parent 04e5d9d commit bde9c2d

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

GEMINI.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ Shared Go libraries used by the `backend` and `workflows`.
107107
- **DO** define new database table structs in `lib/gcpspanner`.
108108
- **DO** create or extend adapters in `lib/gcpspanner/spanneradapters` to expose new database queries.
109109
- **DON'T** import `github.com/GoogleChrome/webstatus.dev/lib/backendtypes` into `lib/gcpspanner`. Instead, define equivalent structs within `lib/gcpspanner` to maintain architectural layering and prevent circular dependencies.
110+
- **DO** handle the translation from business keys (e.g., `featureKey`) to internal database IDs within the `gcpspanner` client. Adapters and workflows should not be aware of internal IDs.
110111

111112
### 3.2.1 The Go Mapper Pattern for Spanner
112113

@@ -396,6 +397,11 @@ For other tools defined as features in the devcontainer:
396397

397398
This guide outlines the process for implementing or refactoring a Go data ingestion workflow.
398399

400+
> **Note on Pull Requests**: For a new workflow, plan to split your work into multiple, sequential pull requests for easier review:
401+
> 1. **Data Layer PR**: Schema migration, new types, `gcpspanner` mapper, and client methods.
402+
> 2. **Workflow Logic PR**: The consumer implementation, including its processor, parser, and downloader.
403+
> 3. **Infrastructure PR**: Terraform changes to deploy the new Cloud Run Job.
404+
399405
**1. Analyze the Data and Goal**
400406

401407
First, analyze the nature of the incoming data and the goal of the ingestion. Ask these questions:

0 commit comments

Comments
 (0)