chore(infra): describe the Frankfurt service - #256
Merged
Conversation
The API now runs as tdn-api-frankfurt in eu-central-1, beside the database and the cache, with api.developernetwork.net pointed at it. This is the export of that service, so the blueprint describes what exists rather than what was wanted - the previous attempt asked for a region Render will not move a service to, and the rejected sync took every other setting with it. The env list grows by twenty keys. The feed ranking and interest weights were never in the blueprint at all, and the media moderation ones are new; declaring them keeps the required configuration visible in one place even though the values stay in the dashboard. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A2WFyQ3PR2jYvDVk89yZpc
They are missing from the export because they are not set on the service yet. Declaring them anyway keeps every variable the app reads visible in one place, and means a sync cannot be the thing that removes them once they are set. The values stay in the dashboard, as with every other secret here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A2WFyQ3PR2jYvDVk89yZpc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the blueprint with the export of the service that actually serves traffic:
tdn-api-frankfurt, ineu-central-1, withapi.developernetwork.netattached.The env list grows from 34 keys to 52. The feed ranking and user interest weights were never declared in the blueprint, and the media moderation settings are new.
Closes the need for #255, which reverted the region on a service that has since been replaced.
Root cause
#254 set
region: frankfurton a service running in Oregon, as a statement of intent. Render does not treat an unreachable region as a no-op — it rejects the blueprint outright, and a rejected blueprint applies nothing, so every other setting in the file stopped syncing too.The file describes the running service. It is not a request for a different one, and the region line is the last step of a move rather than the first. The move has now happened in the dashboard, so the line is true and this export records it.
The measurement that motivated the move: from Turkey, Frankfurt answers in 88 ms against 266 ms for Ohio and 287 ms for Oregon.
SELECT 1cost 173 ms and a RedisPING58 ms from the old arrangement, neither of which does any work — the figures were entirely distance, and a ranked feed page pays it about a dozen times.Tests
Configuration only. Verified by comparing the env key sets: 20 added, and the two below removed.
Before merging anything that turns moderation on
The export shows
SIGHTENGINE_API_USERandSIGHTENGINE_API_SECRETare not set on the new service. They are deliberately not added back here — this file records what exists, and adding async: falsekey with no value is how the sync broke last time.That matters for #253, which makes the moderation service refuse to start when
MODERATION_ENABLEDis true and the credentials are empty. Either set both values on the service, or setMODERATION_ENABLED=falseuntil they exist. Otherwise merging #253 takes the API down on its first boot.AI asistan: Claude Opus 5