Skip to content

chore: restructure v1.19 upgrade guide and Broadcasting/queue retry docs - #198

Open
goravel-coder wants to merge 7 commits into
masterfrom
upgrade/v1.19.0
Open

chore: restructure v1.19 upgrade guide and Broadcasting/queue retry docs#198
goravel-coder wants to merge 7 commits into
masterfrom
upgrade/v1.19.0

Conversation

@goravel-coder

@goravel-coder goravel-coder commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Document the new v1.19 Broadcasting module: drivers, public/private/presence channels, authorization, dispatching and receiving broadcasts, per-event retry/backoff contracts, and the make:event --broadcast / --broadcast --now scaffolding, with the Broadcasting page added to the sidebar.
  • Document the v1.19 queue rework: release-based ShouldRetry retries with the attempt count persisted in the reservation, a driver-agnostic retry_after crashed-worker recovery option, millisecond-precision job timestamps, and the new ReservedJob.Attempts()/Release() contract for custom drivers.
  • Add the "Upgrading To v1.19 From v1.18" guide with an AI-copyable migration checklist that detects custom queue drivers before the ReservedJob step (skippable when none exist), links the exact 20210101000002_create_jobs_table.go migration, and bumps the supported Go version to 1.26.

Why

Goravel v1.19 introduces the Broadcasting module for realtime WebSocket pushes and reworks queue retries from in-memory retries to release-based retries that survive worker restarts. The upgrade guide now presents Broadcasting as the single new feature, merges the queue enhancement (ShouldRetry release-based retry, retry_after, millisecond timestamps) into one section, and keeps only the ReservedJob contract change as a breaking change — so the English docs accurately reflect what changes between v1.18 and v1.19.

The ReservedJob step now ships with a detection command so projects without custom queue drivers can skip it safely, and the migration step links the exact 20210101000002_create_jobs_table.go file instead of describing it generically — making the AI-copyable checklist more reliable end to end.

package controllers

import (
  "context"

  "github.com/goravel/framework/contracts/http"

  "goravel/app/events"
  "goravel/app/facades"
)

func (c *OrderController) Ship(ctx http.Context) http.Response {
  err := facades.Broadcast().Dispatch(context.Background(), &events.OrderShipped{
    OrderID: 1,
  })
  if err != nil {
    return ctx.Response().String(http.StatusInternalServerError, err.Error())
  }

  return ctx.Response().Success().Json(http.Json{"message": "shipped"})
}

@goravel-coder goravel-coder changed the title chore: add v1.19 upgrade guide and Broadcasting/queue retry docs chore: restructure v1.19 upgrade guide and Broadcasting/queue retry docs Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants