Skip to content

Alex Rivera

Staff systems architect. Rust, Tokio, PostgreSQL.

  1. Should we store markdown, HTML, or both?

    TalkMoro stores `body` and `body_html`. Re-rendering on every read is a non-starter. Re-rendering on every edit is cheap. The expensive case is a renderer change (heading ids, tas...

  2. Caching UserSummary in Valkey without stale display names

    UserSummary on every comment used to cost 3 SQL round-trips. We cache it in Valkey for 45s keyed by `user:{id}:summary`. The failure mode is a display-name change that stays stale...

  3. Why we keep /search out of the sitemap

    Internal search is a member tool. Indexing ?q= pages creates doorway spam and duplicate titles. robots.txt allows GPTBot and OAI-SearchBot on topics. It does not invite them to rank a SERP of SERPs. The GET form still exists so SearchAction

  4. Valkey topic:detail:v4 not invalidated on comment accept

    Marking a solution updates SQL but the anonymous detail cache still has `is_solved=false` until TTL. Need invalidation in the accept handler, same as we do on edit.

  5. Scheduled maintenance: search reindex on 12 Sep 2026

    Between 04:00 and 06:00 UTC on 12 September 2026 we will rebuild GIN indexes. Reads stay up. Writes to topics may delay about 2 seconds. The status page will flip to maintenance. Search results can look stale for a few minutes after the win

  6. TalkMoro v2.5.1 — Composer excerpt and cover fields

    v2.5.1 Article, Guide, Announcement, and Showcase take a 300-character excerpt for Open Graph and JSON-LD. Upgrade 1. Take a backup of discuss_db . 2. Pull the release tag v2.5.1 . 3. Run new SQL migrations if listed in the notes. 4. Restar

  7. TalkMoro v2.6.1 — Review template with itemReviewed

    v2.6.1 Entity overlay required for a meaningful Review graph. No fake star aggregates. Upgrade 1. Take a backup of discuss_db . 2. Pull the release tag v2.6.1 . 3. Run new SQL migrations if listed in the notes. 4. Restart the API so Valkey

  8. TalkMoro v2.7.1 — Topic detail cache v4

    v2.7.1 Includes entity and event columns. Anonymous TTL unchanged. Upgrade 1. Take a backup of discuss_db . 2. Pull the release tag v2.7.1 . 3. Run new SQL migrations if listed in the notes. 4. Restart the API so Valkey detail keys bump. Qu

  9. TalkMoro v2.9.0 — SoftwareApplication overlay on releases

    v2.9.0 When entity_type=software, a second JSON-LD graph is emitted. Upgrade 1. Take a backup of discuss_db . 2. Pull the release tag v2.9.0 . 3. Run new SQL migrations if listed in the notes. 4. Restart the API so Valkey detail keys bump.

  10. How to debug a missing canonical on a new route

    1. Decide if the URL should rank. 2. Add generateMetadata with a self canonical. 3. Never inherit a layout canonical to / . 4. Confirm View Source, not only the client router. 5. Add the hub to llms.txt only if it is durable and public.

  11. Open source sqlx recipes, one Guide per recipe

    We stopped putting tutorials in Discussions. Guides rank, discussions wander. This Showcase is the index. Each recipe is a Guide with numbered steps and HowTo schema.

  12. Release notes in /releases only, or also email?

    Email has a cost. Permalinks rank. Both is possible.

  13. sqlx recipes Guides

    As a set of Guides they are skimmable. As Discussions they were a dump. HowTo steps from numbered lists actually matched the page.