rfc: Forge Instances & Pilot Regions - #28
Conversation
Signed-off-by: Miroslav Bajtoš <oss@bajtos.net>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6949892ddf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| light testing, but not performance/load testing. Light monitoring if any at all. | ||
| - **Real vs test money:** Stripe test cards, Filecoin calibnet. | ||
| - **Data rention:** Weekly network reset on Sunday morning UTC. | ||
| - **Regions:** Single region (us-east-9). |
There was a problem hiding this comment.
We may want to have at least 2 regions in dev, so that we can test multi-region support in central components. Thoughts?
There was a problem hiding this comment.
Not initially. There is nothing to test(?).
There was a problem hiding this comment.
How about verifying whether a single S3 access key can be scoped to buckets across multiple regions?
| This is a stable "preview" instance showing the latest & greatest features, suitable for customer | ||
| demos. Not used for load/performance testing to avoid degraded performance during demos. | ||
|
|
||
| - **Update frequency:** Every Monday morning UTC. Can be rescheduled ad-hoc in case of a customer demo planned for Monday. |
There was a problem hiding this comment.
Do we have a stable network every Monday? My gut instinct is to release this whenever we believe we have a stable network, not on a weekly cadence.
There was a problem hiding this comment.
I see your point.
My concerns with "release whenever we believe we have a stable network":
- If we don't release on a regular basis, then we need someone to remember to periodically ask whether we have a stable network. In my experience, this is a slippery slope leading to no releases for weeks.
- IMO, we should treat the dev network the same way as CI. If it's broken, then it's the team's P0 priority to fix it ASAP. An unstable network on the day a scheduled upgrade was planned should be a rare exception, and we should iterate on improving our practices to make it less and less likely over time.
BTW, we can use feature flags to ship code for partially-implemented features before we make them available to users.
How about releasing biweekly on Mondays when a sprint ends?
- The network should be stable by the end of the sprint; otherwise, we cannot claim our work is "done done".
- This gives us a longer window for shipping & fixing destabilising changes, i.e. the entire sprint duration.
- This way, Monday demos can show things that are already available for non-engineers in the staging/preview environment. Which is the way it should be in Scrum.
Essentially, I am proposing to adopt "Release trains".
On the second thought, let's move the update frequency to open questions, and scope this RFC to describe the other aspects of the Forge instances we want to run.
|
Had a chat with @bajtos and @hannahhoward: |
|
Chat with @bajtos and @hannahhoward concluded:
|
There was a problem hiding this comment.
🟡 Changes recommended
The RFC contains several typos/grammar issues that should be corrected to avoid ambiguity in the proposal.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR introduces a new RFC proposing how to run and operate multiple Forge network instances to balance competing needs (e.g., continuous deployment vs. stability) and to define criteria per instance.
Changes:
- Added an RFC describing decision criteria (update cadence, stability, infra, money type, resets, regions).
- Proposed four instance tiers: Production, Dev, Staging, and Performance testing.
File summaries
| File | Description |
|---|---|
| rfcs/2026-09-forge-instances.md | New RFC documenting criteria and a proposed set of Forge instances to operate. |
Review details
Suppressed comments (1)
rfcs/2026-09-forge-instances.md:116
- Wording/grammar: "the person on the pager duty" is ungrammatical; "on pager duty" (or similar) reads correctly.
- **Stability & acceptable outages:** Reasonable stability and minimum unplanned downtime. Full monitoring with alerts routed to the person on the pager duty, with capped severity (no incident is critical).
- Files reviewed: 1/1 changed files
- Comments generated: 5
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Signed-off-by: Miroslav Bajtoš <oss@bajtos.net>
Signed-off-by: Miroslav Bajtoš <oss@bajtos.net>
Signed-off-by: Miroslav Bajtoš <oss@bajtos.net>
There was a problem hiding this comment.
🟡 Changes recommended
The RFC contains a few concrete typos plus a substantive inconsistency about S3 access-key scope that could mislead readers.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
Suppressed comments (2)
rfcs/2026-09-forge-instances.md:63
- Typo: "gives use" should be "gives us".
On the FilOne side, we use Stripe sandbox in non-production environments, which gives use "test"
rfcs/2026-09-forge-instances.md:138
- This "Important" note seems inconsistent with the rest of the RFC: pilot regions are described as part of the production Forge instance, so S3 access keys would span production + pilot regions (within one instance), not "dev & staging" (which are separate instances per the later note). Consider correcting the wording to avoid confusing readers.
Important: by adding pilot regions to the production Forge instance, we allow customers to create S3
access keys with access to both dev & staging regions.
- Files reviewed: 1/1 changed files
- Comments generated: 2
- Review effort level: Lite
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Miroslav Bajtoš <oss@bajtos.net>
|
very good to think through this ahead of GA but a few concerns:
|
Great catch! My initial thinking was that non-pilot users won't be able to create access keys with permissions to access non-pilot regions, and therefore we don't need the S3 boundary to be aware of pilots. However, that's not true if we keep the current option of creating an access key that can create new buckets everywhere.
We will make it clear that pilot data will be deleted after the pilot ends. I think we may eventually need to implement migration from pilot to production, but that's beyond our current horizon.
I'll discuss internally and clarify.
Can you please clarify what you mean? |
|
After discussing this with Alan, I realised I need to rework the proposal for Pilot regions. Adding & removing pilot regions from the main production network would require too much upfront work. We can get this faster by deploying a new Forge network for each pilot region. |
nice, cutting the knot is probably the better call than untangling it here 👍 |
Signed-off-by: Miroslav Bajtoš <oss@bajtos.net>
Signed-off-by: Miroslav Bajtoš <oss@bajtos.net>
|
I reworked the text to propose creating a new Forge network instance for each customer pilot, based on the discussions we had. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3d488052ca
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Miroslav Bajtoš <oss@bajtos.net>
alanshaw
left a comment
There was a problem hiding this comment.
Minor feedback worth addressing but LGTM otherwise.
Co-authored-by: ash <alan138@gmail.com>
|
Thank you, @alanshaw, for the grammar fixes! ❤️ I applied all suggestions. |
📖 Preview
Summary
We want to operate multiple Forge network instances to serve conflicting needs like continuous
deployment vs stability. This document collects different criteria we have for each instance and
proposes a set of instances to stand up and operate.