Skip to content

🔄 Sync with upstream changes#17

Open
h0lybyte wants to merge 334 commits intomainfrom
upstream-main
Open

🔄 Sync with upstream changes#17
h0lybyte wants to merge 334 commits intomainfrom
upstream-main

Conversation

@h0lybyte
Copy link
Copy Markdown
Member

Upstream Sync

This PR contains the latest changes from the upstream repository.

Changes included:

  • Synced from upstream/main
  • Auto-generated by upstream sync workflow

Review checklist:

  • Review the changes for any breaking changes
  • Check for conflicts with local modifications
  • Verify tests pass (if applicable)

This PR was automatically created by the upstream sync workflow

edgurgel and others added 30 commits November 19, 2025 04:04
Routes CRUD operations to master node when such is set via environment variable

---------

Co-authored-by: Eduardo Gurgel <eduardo.gurgel@supabase.io>
we were not starting the replica processes properly so we would end up failing healthchecks.
we were using Realtime.Repo to build the required SQL to call tenants databases. as we move towards some regions only using Replicas we can remove fully this logic and rely on the Replica modules to build said queries
If the string size matches the uuid length we were parsing it to be uuid which created issues. To prevent it we now handle payload based on the relations provided and we further simplified the logic to not use send in our message handling
This approach prevents sending more information than needed reducing the amount of data send via gen_rpc. We also remove some unnecessary calls to primary in the delete controller operation
Avoid using the same container over and over
* Allow 3x more max heap size than other processes
* Avoid compressing given that gen_rpc does this for us already
* fix: remove limit_concurrent metric
* fix: revert the way we fetched tenants to report on connected metric
* fix: remove tenant tag on RPC metrics
* chore: bump version
semantic-release-bot and others added 30 commits April 16, 2026 22:04
Co-authored-by: supabase-workflow-trigger[bot] <266661614+supabase-workflow-trigger[bot]@users.noreply.github.com>
* feat: add PartitonedTables

Peep.Storage implementation using N ETS tables with optional tag-based routing.

Each metric write is routed to a specific table based on a `:routing_tag` option.
If the routing tag is present in the metric's tags, `:erlang.phash2/2` is used to
select the table. Otherwise, the first table is used.

This reduces lock contention by routing different tag values (e.g. different tenants)
to different ETS tables, without partitioning metrics within a table.
Co-authored-by: supabase-workflow-trigger[bot] <266661614+supabase-workflow-trigger[bot]@users.noreply.github.com>
Improve the local setup to make it straightforward to run the server:

```
mise run db-start
mix setup
mise run dev
```

- Introduce mise to manage tool versions, tasks, and envs
- Removed .tool-versions and Makefile in favor of mise.toml
- Introduce `Realtime.Env` to use in runtime.exs with tests and more
  validations to make it more resilient to avoid hard to debug errors in
  the server booting process
- Group all envs together in `runtime.exs` to have better
  discoverability, especially for docs (self-hosting) and config
- Break readme into dedicated docs to reduce noise in the main readme
  (easier to scan)
- Add Code of Conduct and Contributing guides based on
  https://github.com/supabase/.github and https://github.com/supabase/supabase
- Added env vars into ENVS.md: API_TOKEN_BLOCKLIST, CLUSTER_STRATEGIES,
  DB_MASTER_REGION, DB_HOST_REPLICA_FRA, DB_HOST_REPLICA_IAD,
  DB_HOST_REPLICA_SIN, DB_HOST_REPLICA_SJC, REGION, LOGS_ENGINE,
  LOGFLARE_LOGGER_BACKEND_URL, LOGFLARE_API_KEY, LOGFLARE_SOURCE_ID,
  JWT_CLAIM_VALIDATORS, METRICS_JWT_SECRET, METRICS_TOKEN_BLOCKLIST,
  MAX_GEN_RPC_CALL_CLIENTS, PROM_POLL_RATE, AWS_EXECUTION_ENV,
  JANITOR_MAX_CHILDREN, JANITOR_CHILDREN_TIMEOUT,
  LOG_THROTTLE_JANITOR_INTERVAL_IN_MS, MEASURE_TRAFFIC_INTERVAL_IN_MS,
  NO_CHANNEL_TIMEOUT_IN_MS, RPC_TIMEOUT
- Removed stale env vars from ENVS.md: DISCONNECT_SOCKET_ON_NO_CHANNELS_INTERVAL_IN_MS,
  JANITOR_CLEANUP_MAX_CHILDREN, JANITOR_CLEANUP_CHILDREN_TIMEOUT
Used Elixir 1.20 type system to identify violations.
now we can setup otel to track performance of each test and have properly defined spans per test
Co-authored-by: supabase-workflow-trigger[bot] <266661614+supabase-workflow-trigger[bot]@users.noreply.github.com>
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.