PostgreSQLrecord 1
{
"id": "P09-R-001",
"evidence_class": "observed",
"source": "https://github.com/postgres/postgres",
"observed": "2026-08-27",
"name": "PostgreSQL",
"category": "postgres-core",
"license": "PostgreSQL License (permissive, BSD-like) — read from COPYRIGHT body",
"license_verified": "body",
"claim": "Owns the Actionist-side system of record: tenant registry, app manifests, install/grant state, run history, audit log. Every other component in this plane is a satellite of this one.",
"hosted_embeddable": "yes",
"limitations": "No built-in tenant isolation primitive beyond RLS; connection-per-tenant does not scale, so a pooler and a tenant-context convention are mandatory design work, not free.",
"disposition": "top10"
}
pgvectorrecord 2
{
"id": "P09-R-002",
"evidence_class": "observed",
"source": "https://github.com/pgvector/pgvector",
"observed": "2026-08-27",
"name": "pgvector",
"category": "postgres-extension",
"license": "PostgreSQL License (permissive) — LICENSE body is the PostgreSQL grant, despite GitHub reporting NOASSERTION",
"license_verified": "body",
"claim": "Owns embedding storage and similarity search for donor-app capability matching and semantic retrieval over Actionist-owned state, inside the same Postgres as relational state — no second datastore to make consistent.",
"hosted_embeddable": "yes",
"limitations": "Index build cost is real at scale; HNSW rebuilds block. GitHub's license API says NOASSERTION, so a badge-only reader would mis-file this — the body is unambiguous. DEMOTED from top10: pgvector is only load-bearing if semantic capability-matching is confirmed in scope; it is an add-on to the Postgres core row (P09-R-001), not an independent pillar.",
"disposition": "register"
}
pg_partmanrecord 3
{
"id": "P09-R-003",
"evidence_class": "observed",
"source": "https://github.com/pgpartman/pg_partman",
"observed": "2026-08-27",
"name": "pg_partman",
"category": "postgres-extension",
"license": "PostgreSQL License — LICENSE.txt names it explicitly as PostgreSQL License, Crunchy Data copyright",
"license_verified": "body",
"claim": "Owns time-based partition lifecycle for the high-churn tables in the plane: run history, event log, audit trail. Turns unbounded append tables into a retention policy.",
"hosted_embeddable": "yes",
"limitations": "Operational surface (background worker or scheduled maintenance calls) must be run and monitored; silent failure means partitions stop being created. Last push 2026-08-21.",
"disposition": "register"
}
Citusrecord 4
{
"id": "P09-R-004",
"evidence_class": "observed",
"source": "https://github.com/citusdata/citus",
"observed": "2026-08-27",
"name": "Citus",
"category": "postgres-scale-out",
"license": "AGPL-3.0 — LICENSE body is GNU Affero GPL v3, confirmed by both API spdx_id and body",
"license_verified": "body",
"claim": "Would own horizontal sharding of tenant data by distribution column if Actionist outgrew a single Postgres writer.",
"hosted_embeddable": "no",
"limitations": "AGPL-3.0 LANDMINE. Widely assumed permissive because Microsoft owns it and it is 'just a Postgres extension' — it is not. AGPL network-use clause reaches a hosted multi-tenant service. Extension-vs-application linkage is an unsettled legal question we should not volunteer to test. Reject for embedding; a managed Citus service is the only safe route.",
"disposition": "rejected"
}
TimescaleDBrecord 5
{
"id": "P09-R-005",
"evidence_class": "observed",
"source": "https://github.com/timescale/timescaledb",
"observed": "2026-08-27",
"name": "TimescaleDB",
"category": "postgres-extension",
"license": "SPLIT: Apache-2.0 outside tsl/, Timescale License (proprietary) inside tsl/ — LICENSE body states the split, tsl/LICENSE-TIMESCALE is a commercial EULA",
"license_verified": "body",
"claim": "Would own time-series compression and continuous aggregates over run/telemetry history.",
"hosted_embeddable": "conditional",
"limitations": "The features people actually want TimescaleDB for (compression, continuous aggregates, retention automation) live in tsl/ under the proprietary Timescale License, which restricts offering it as a DBaaS. The Apache-only build is a much thinner product than the marketing implies. GitHub reports NOASSERTION. pg_partman + plain Postgres covers our retention need without this ambiguity.",
"disposition": "rejected"
}
Drizzle ORMrecord 6
{
"id": "P09-R-006",
"evidence_class": "observed",
"source": "https://github.com/drizzle-team/drizzle-orm",
"observed": "2026-08-27",
"name": "Drizzle ORM",
"category": "orm-migration",
"license": "Apache-2.0 — GitHub license identifier Apache License 2.0",
"license_verified": "badge",
"claim": "Owns the typed schema definition and query layer for Actionist-owned Postgres, and is the natural place to encode the tenant-scoping convention so RLS is enforced in types as well as in the database.",
"hosted_embeddable": "yes",
"limitations": "Migration story is generate-and-apply, weaker than Atlas for drift detection against a live database. Very active (push 2026-08-26, 35.6k stars) but API has churned historically.",
"disposition": "top10"
}
Prismarecord 7
{
"id": "P09-R-007",
"evidence_class": "observed",
"source": "https://github.com/prisma/prisma",
"observed": "2026-08-27",
"name": "Prisma",
"category": "orm-migration",
"license": "Apache-2.0 — GitHub license identifier Apache License 2.0 (repo now resolves as prisma/orm)",
"license_verified": "badge",
"claim": "Alternative schema/migration owner with the largest ecosystem (47.5k stars, push 2026-08-27).",
"hosted_embeddable": "yes",
"limitations": "Rust query engine binary per deployment target complicates the host's packaging story; historically awkward with raw SQL and RLS session variables, which is exactly the mechanism our tenant isolation depends on. Drizzle is the better fit for an RLS-centric plane.",
"disposition": "register"
}
Kyselyrecord 8
{
"id": "P09-R-008",
"evidence_class": "observed",
"source": "https://github.com/kysely-org/kysely",
"observed": "2026-08-27",
"name": "Kysely",
"category": "orm-migration",
"license": "MIT — GitHub license identifier MIT License",
"license_verified": "badge",
"claim": "Owns type-safe SQL construction where the host needs to emit dynamic queries against donor-app-shaped schemas that are not known at Actionist compile time.",
"hosted_embeddable": "yes",
"limitations": "Query builder only — no migration engine, no schema source of truth. Complements rather than replaces Drizzle or Atlas. 14.2k stars, push 2026-08-26.",
"disposition": "register"
}
Atlasrecord 9
{
"id": "P09-R-009",
"evidence_class": "observed",
"source": "https://github.com/ariga/atlas",
"observed": "2026-08-27",
"name": "Atlas",
"category": "orm-migration",
"license": "Apache-2.0 — LICENSE body is Apache License 2.0",
"license_verified": "body",
"claim": "Owns declarative schema-as-code migration and, critically, drift detection: the mechanism that answers whether a donor app's native store still matches the contract Actionist believes it has.",
"hosted_embeddable": "yes",
"limitations": "Core is Apache-2.0 but the vendor gates several capabilities behind Atlas Cloud/Pro; verify any specific feature is in the OSS binary before depending on it. Push 2026-08-02, slightly staler than the rest of this lane.",
"disposition": "top10"
}
sqlcrecord 10
{
"id": "P09-R-010",
"evidence_class": "observed",
"source": "https://github.com/sqlc-dev/sqlc",
"observed": "2026-08-27",
"name": "sqlc",
"category": "orm-migration",
"license": "MIT — GitHub license identifier MIT License",
"license_verified": "badge",
"claim": "Generates typed accessors from hand-written SQL; would own the query layer if the host prefers SQL-first over ORM-first.",
"hosted_embeddable": "yes",
"limitations": "Go-centric; TypeScript codegen is comparatively immature, which is a poor match if the host is a TS service. 18.2k stars, push 2026-08-27.",
"disposition": "register"
}
Flywayrecord 11
{
"id": "P09-R-011",
"evidence_class": "observed",
"source": "https://github.com/flyway/flyway",
"observed": "2026-08-27",
"name": "Flyway",
"category": "orm-migration",
"license": "Apache-2.0 — GitHub license identifier Apache License 2.0 (Redgate-owned)",
"license_verified": "badge",
"claim": "Versioned SQL migration runner, JVM-hosted, for donor apps that already standardize on it.",
"hosted_embeddable": "conditional",
"limitations": "Apache core is real but Redgate gates undo/dry-run and much of the enterprise surface behind Flyway Teams/Enterprise. JVM dependency is a poor fit for a TS host. Register as a donor-app-side reality to interoperate with, not a host dependency.",
"disposition": "register"
}
Liquibaserecord 12
{
"id": "P09-R-012",
"evidence_class": "observed",
"source": "https://github.com/liquibase/liquibase",
"observed": "2026-08-27",
"name": "Liquibase",
"category": "orm-migration",
"license": "FSL-1.1-ALv2 (Functional Source License, Apache-2.0 future) — LICENSE.txt body reads 'Functional Source License, Version 1.1, ALv2 Future License', Copyright 2025 Liquibase Inc.",
"license_verified": "body",
"claim": "Would own XML/YAML-described migrations across heterogeneous donor databases.",
"hosted_embeddable": "no",
"limitations": "LICENSE LANDMINE — Liquibase is remembered as Apache-2.0 and GitHub reports only 'Other'. The body is FSL-1.1, which forbids competing use until each version converts to Apache-2.0 two years after release. Anyone relying on institutional memory here would be wrong. Reject for host embedding.",
"disposition": "rejected"
}
Debeziumrecord 13
{
"id": "P09-R-013",
"evidence_class": "observed",
"source": "https://github.com/debezium/debezium",
"observed": "2026-08-27",
"name": "Debezium",
"category": "cdc-events",
"license": "Apache-2.0 — LICENSE.txt body is Apache License 2.0",
"license_verified": "body",
"claim": "Owns change data capture from donor-app-owned native stores into the Actionist event plane, reading the Postgres WAL so donor apps need no write-path modification — the key property for federating stores Actionist does not control.",
"hosted_embeddable": "yes",
"limitations": "JVM + Kafka Connect operational weight is substantial for a host that is otherwise TS/Postgres. Embedded Engine avoids Kafka but is less battle-tested. 13k stars, push 2026-08-27. DEMOTED from top10: Debezium and NATS/JetStream (P09-R-015) overlap on the event-transport seam, and Debezium's JVM+Kafka Connect weight makes it the costlier of the two for a TS/Postgres host. Keep as the CDC answer if WAL capture from donor stores becomes mandatory.",
"disposition": "register"
}
Sequinrecord 14
{
"id": "P09-R-014",
"evidence_class": "observed",
"source": "https://github.com/sequinstream/sequin",
"observed": "2026-08-27",
"name": "Sequin",
"category": "cdc-events",
"license": "MIT — LICENSE body is MIT License, Copyright 2024 Sequin Labs, Inc.",
"license_verified": "body",
"claim": "Postgres-native CDC to streams/queues with far less operational weight than Debezium; would own change capture if the host wants WAL streaming without a JVM.",
"hosted_embeddable": "yes",
"limitations": "MAINTENANCE FLAG — last push 2026-02-23, roughly six months stale as of today, against 2.2k stars. Every other repo in this lane pushed within days. Treat continuity as an open risk before depending on it.",
"disposition": "register"
}
NATS / JetStreamrecord 15
{
"id": "P09-R-015",
"evidence_class": "observed",
"source": "https://github.com/nats-io/nats-server",
"observed": "2026-08-27",
"name": "NATS / JetStream",
"category": "cdc-events",
"license": "Apache-2.0 — LICENSE body is Apache License 2.0",
"license_verified": "body",
"claim": "Owns the message and event transport between host control plane and per-tenant runtimes, with JetStream supplying persistence and replay. Subject hierarchies map cleanly onto tenant/app isolation.",
"hosted_embeddable": "yes",
"limitations": "Multi-tenancy via accounts is real but the configuration surface is easy to get subtly wrong; isolation is only as good as the account/permission wiring. 20.6k stars, push 2026-08-27.",
"disposition": "top10"
}
Redpandarecord 16
{
"id": "P09-R-016",
"evidence_class": "observed",
"source": "https://github.com/redpanda-data/redpanda",
"observed": "2026-08-27",
"name": "Redpanda",
"category": "cdc-events",
"license": "BSL 1.1 + Redpanda Community License — licenses/bsl.md body carries an Additional Use Grant explicitly excluding 'a Streaming or Queuing Service'; licenses/rcl.md is a separate proprietary community license. GitHub reports no license at all.",
"license_verified": "body",
"claim": "Would own a Kafka-API-compatible event log without JVM/ZooKeeper.",
"hosted_embeddable": "no",
"limitations": "LICENSE LANDMINE, and the sharpest one found. GitHub's API returns null for license, so any automated scan sees nothing. The BSL Additional Use Grant names hosting/cloud providers offering topic-creating functionality to third parties — which is close to a description of a multi-tenant host. Reject.",
"disposition": "rejected"
}
ElectricSQLrecord 17
{
"id": "P09-R-017",
"evidence_class": "observed",
"source": "https://github.com/electric-sql/electric",
"observed": "2026-08-27",
"name": "ElectricSQL",
"category": "read-model-sync",
"license": "Apache-2.0 — root LICENSE body is Apache 2.0 AND packages/sync-service/LICENSE independently verified as Apache 2.0",
"license_verified": "body",
"claim": "Owns partial replication of Postgres state to clients as shapes: the read-model seam that lets donor-app UIs read Actionist-owned state without each one implementing its own polling and cache invalidation.",
"hosted_embeddable": "yes",
"limitations": "Deliberately re-scoped to read-path sync; write path and conflict resolution are the host's problem. I checked the per-package LICENSE separately rather than trusting the root badge, because this is exactly the shape that burned this project before — here it held up. 10.3k stars, push 2026-08-26.",
"disposition": "top10"
}
PowerSync Servicerecord 18
{
"id": "P09-R-018",
"evidence_class": "observed",
"source": "https://github.com/powersync-ja/powersync-service",
"observed": "2026-08-27",
"name": "PowerSync Service",
"category": "read-model-sync",
"license": "FSL-1.1-ALv2 — LICENSE body reads 'Functional Source License, Version 1.1, ALv2 Future License', Copyright 2023-2026 Journey Mobile, Inc.",
"license_verified": "body",
"claim": "Would own bidirectional offline-first sync between Postgres and embedded client SQLite.",
"hosted_embeddable": "no",
"limitations": "LICENSE LANDMINE. The FSL body forbids use that 'offers the same or substantially similar functionality as the Software' — read directly, not inferred. A multi-tenant host embedding a sync engine is squarely what that clause targets. Converts to Apache-2.0 two years per version, so old versions eventually free up. Client SDKs are licensed separately from this server component. Reject the service.",
"disposition": "rejected"
}
Zero (Rocicorp)record 19
{
"id": "P09-R-019",
"evidence_class": "observed",
"source": "https://github.com/rocicorp/mono",
"observed": "2026-08-27",
"name": "Zero (Rocicorp)",
"category": "read-model-sync",
"license": "Apache-2.0 — root LICENSE body is Apache License 2.0; no separate packages/zero/LICENSE override exists (checked, 404)",
"license_verified": "body",
"claim": "Owns query-driven sync with client-side caching and optimistic mutation — the most complete answer to 'donor app UI reads and writes Actionist state and stays live' in one mechanism.",
"hosted_embeddable": "conditional",
"limitations": "Pre-1.0 and the API is still moving; 3.4k stars is modest for something this load-bearing. Verified there is no per-package license override hiding under the Apache root. Genuinely promising but a bet, not a foundation.",
"disposition": "register"
}
RisingWaverecord 20
{
"id": "P09-R-020",
"evidence_class": "observed",
"source": "https://github.com/risingwavelabs/risingwave",
"observed": "2026-08-27",
"name": "RisingWave",
"category": "read-model-sync",
"license": "Apache-2.0 — LICENSE body is Apache License 2.0",
"license_verified": "body",
"claim": "Owns streaming materialized views over CDC input, maintaining derived cross-tenant read models (usage rollups, capability indexes) incrementally instead of by batch recompute.",
"hosted_embeddable": "yes",
"limitations": "A full distributed streaming database to operate; heavy unless materialized-view maintenance is a core need. Notably Apache-2.0 where its closest competitor Materialize is BSL — the licensing divergence is the main reason to prefer it. Push 2026-08-27. DEMOTED from top10: streaming materialized views are a scale optimization, not a Sprint-1 pillar; plain Postgres views plus pg_partman cover the near-term need without operating a distributed streaming database.",
"disposition": "register"
}
Materializerecord 21
{
"id": "P09-R-021",
"evidence_class": "observed",
"source": "https://github.com/MaterializeInc/materialize",
"observed": "2026-08-27",
"name": "Materialize",
"category": "read-model-sync",
"license": "BSL 1.1 — LICENSE body opens 'Materialize is licensed under the Business Source License agreement'; GitHub reports NOASSERTION",
"license_verified": "body",
"claim": "Would own incrementally-maintained SQL materialized views over streams.",
"hosted_embeddable": "no",
"limitations": "LICENSE LANDMINE. BSL 1.1 blocks offering it as part of a hosted service during the restricted term. GitHub shows only 'Other', so badge-reading misses it. RisingWave is the Apache-2.0 substitute for the same job.",
"disposition": "rejected"
}
SQLiterecord 22
{
"id": "P09-R-022",
"evidence_class": "observed",
"source": "https://github.com/sqlite/sqlite",
"observed": "2026-08-27",
"name": "SQLite",
"category": "embedded",
"license": "Public Domain — LICENSE.md body states 'SQLite Is Public Domain', authors filed affidavits; GitHub reports NOASSERTION",
"license_verified": "body",
"claim": "Owns per-tenant or per-run embedded state inside sandboxed runtimes where a network round-trip to central Postgres is the wrong shape.",
"hosted_embeddable": "yes",
"limitations": "Single-writer; no network protocol of its own. Public domain is the least encumbered status available — no attribution obligation at all. Mirror repo, push 2026-08-27.",
"disposition": "register"
}
libSQLrecord 23
{
"id": "P09-R-023",
"evidence_class": "observed",
"source": "https://github.com/tursodatabase/libsql",
"observed": "2026-08-27",
"name": "libSQL",
"category": "embedded",
"license": "MIT — LICENSE.md body is MIT License, 'Copyright 2023 the sqld authors'",
"license_verified": "body",
"claim": "Owns per-tenant embedded databases that also need a server protocol and replication — the database-per-tenant model without a Postgres schema explosion.",
"hosted_embeddable": "yes",
"limitations": "Fork of SQLite, so it inherits SQLite's semantics but not its stability guarantees; the vendor's hosted product is the commercial focus and OSS priorities follow it. 17.2k stars, push 2026-08-26.",
"disposition": "register"
}
DuckDBrecord 24
{
"id": "P09-R-024",
"evidence_class": "observed",
"source": "https://github.com/duckdb/duckdb",
"observed": "2026-08-27",
"name": "DuckDB",
"category": "embedded",
"license": "MIT — LICENSE body is MIT, Copyright 2018-2026 Stichting DuckDB Foundation",
"license_verified": "body",
"claim": "Owns in-process analytical queries over exported tenant state — usage reporting and cross-app analysis without an OLAP cluster or moving data to a warehouse.",
"hosted_embeddable": "yes",
"limitations": "Analytical, not transactional; not a system of record. Foundation-governed, which lowers relicensing risk relative to single-vendor projects. 40.7k stars, push 2026-08-27. DEMOTED from top10: DuckDB serves analytics/reporting, which is adjacent to the data plane rather than part of the state path Sprint-1 must settle.",
"disposition": "register"
}
Meilisearchrecord 25
{
"id": "P09-R-025",
"evidence_class": "observed",
"source": "https://github.com/meilisearch/meilisearch",
"observed": "2026-08-27",
"name": "Meilisearch",
"category": "search",
"license": "MIT AND BUSL-1.1 (dual) — LICENSE body states Enterprise Edition parts are BUSL-1.1 per LICENSE-EE, remainder MIT, and declares 'SPDX-License-Identifier: MIT AND BUSL-1.1'; GitHub reports NOASSERTION",
"license_verified": "body",
"claim": "Would own capability/app catalog search with typo tolerance.",
"hosted_embeddable": "conditional",
"limitations": "LICENSE LANDMINE, recently changed. Meilisearch is broadly remembered as MIT and that is now only half true — an EE subset is BUSL-1.1. Any use must establish that no EE-licensed feature is in the build path, which is ongoing diligence rather than a one-time check. 59.1k stars.",
"disposition": "register"
}
Typesenserecord 26
{
"id": "P09-R-026",
"evidence_class": "observed",
"source": "https://github.com/typesense/typesense",
"observed": "2026-08-27",
"name": "Typesense",
"category": "search",
"license": "GPL-3.0 — LICENSE.txt body on default branch v31 is GNU General Public License v3 (root path 404s on master; resolved via actual default branch)",
"license_verified": "body",
"claim": "Would own the searchable capability catalog.",
"hosted_embeddable": "conditional",
"limitations": "GPL-3.0, not AGPL. Running an unmodified GPL binary as a separate network service does not trigger distribution obligations, so it is usable at arm's length — but it is copyleft and must never be linked into host code. Note the LICENSE path only resolves on branch v31, so a naive master-branch fetch reports no license.",
"disposition": "register"
}
OpenSearchrecord 27
{
"id": "P09-R-027",
"evidence_class": "observed",
"source": "https://github.com/opensearch-project/OpenSearch",
"observed": "2026-08-27",
"name": "OpenSearch",
"category": "search",
"license": "Apache-2.0 — LICENSE.txt body is Apache License 2.0",
"license_verified": "body",
"claim": "Owns full-text search and log/audit analytics at scale; the Apache-2.0 escape hatch from Elasticsearch's SSPL/ELv2 relicensing.",
"hosted_embeddable": "yes",
"limitations": "JVM, heavy to operate, oversized for a catalog of hundreds of capabilities. Correct answer only if audit-log analytics at volume becomes a real requirement. 13.6k stars, push 2026-08-27.",
"disposition": "register"
}
MinIOrecord 28
{
"id": "P09-R-028",
"evidence_class": "observed",
"source": "https://github.com/minio/minio",
"observed": "2026-08-27",
"name": "MinIO",
"category": "files",
"license": "AGPL-3.0 — LICENSE body is GNU Affero General Public License v3",
"license_verified": "body",
"claim": "Would own S3-compatible storage for tenant artifacts and build outputs.",
"hosted_embeddable": "no",
"limitations": "DOUBLE DISQUALIFIER. AGPL-3.0 reaches hosted network use, and the repository is ARCHIVED as of this check with last push 2026-04-24 — the vendor has moved development elsewhere. Even setting licence aside, an archived object store is not a foundation. Reject.",
"disposition": "rejected"
}
SeaweedFSrecord 29
{
"id": "P09-R-029",
"evidence_class": "observed",
"source": "https://github.com/seaweedfs/seaweedfs",
"observed": "2026-08-27",
"name": "SeaweedFS",
"category": "files",
"license": "Apache-2.0 — LICENSE body is Apache License 2.0",
"license_verified": "body",
"claim": "Owns S3-compatible blob storage for tenant artifacts, build outputs, and uploads — the Apache-2.0 replacement for MinIO now that MinIO is both AGPL and archived.",
"hosted_embeddable": "yes",
"limitations": "Smaller operator community than MinIO had; S3 API compatibility is good but not exhaustive, so verify the specific operations the host relies on. 34.3k stars, push 2026-08-27 — actively maintained where MinIO is not.",
"disposition": "top10"
}
Garagerecord 30
{
"id": "P09-R-030",
"evidence_class": "observed",
"source": "https://github.com/deuxfleurs-org/garage",
"observed": "2026-08-27",
"name": "Garage",
"category": "files",
"license": "AGPL-3.0 — LICENSE body fetched from the canonical upstream at git.deuxfleurs.fr is GNU Affero GPL v3; GitHub mirror reports AGPL-3.0 consistently",
"license_verified": "body",
"claim": "Would own geo-distributed S3 storage for small self-hosted deployments.",
"hosted_embeddable": "no",
"limitations": "AGPL-3.0 — same network-use problem as MinIO. Also note the GitHub repo is an explicitly-labelled mirror; canonical development is on git.deuxfleurs.fr, so GitHub signals understate activity. Reject on licence.",
"disposition": "rejected"
}
Temporalrecord 31
{
"id": "P09-R-031",
"evidence_class": "observed",
"source": "https://github.com/temporalio/temporal",
"observed": "2026-08-27",
"name": "Temporal",
"category": "queues-workflow",
"license": "MIT — LICENSE body is The MIT License, Copyright 2025 Temporal Technologies Inc. and 2020 Uber Technologies",
"license_verified": "body",
"claim": "Owns durable execution for long-running multi-step operations — app installs, migrations, connector syncs — where a crash mid-sequence must resume rather than restart or corrupt state.",
"hosted_embeddable": "yes",
"limitations": "Substantial operational footprint (own persistence, matching and history services); overkill unless durable multi-step workflows are genuinely core. MIT on a system of this scope is unusually permissive and a strong point in its favour. 22.6k stars, push 2026-08-27.",
"disposition": "top10"
}
Inngestrecord 32
{
"id": "P09-R-032",
"evidence_class": "observed",
"source": "https://github.com/inngest/inngest",
"observed": "2026-08-27",
"name": "Inngest",
"category": "queues-workflow",
"license": "SSPL v1 with Apache-2.0 future grant — LICENSE.md body reads 'Server Side Public License, Version 1.0' / 'Apache 2.0 Future License', Copyright 2022 Inngest, Inc.; GitHub reports NOASSERTION",
"license_verified": "body",
"claim": "Would own event-driven durable step functions with a far lighter developer surface than Temporal.",
"hosted_embeddable": "no",
"limitations": "LICENSE LANDMINE. SSPL is the MongoDB-style licence whose service clause demands releasing the entire surrounding service stack if offered as a service — categorically incompatible with a proprietary multi-tenant host. GitHub shows only 'Other'. Reject.",
"disposition": "rejected"
}
Riverrecord 33
{
"id": "P09-R-033",
"evidence_class": "observed",
"source": "https://github.com/riverqueue/river",
"observed": "2026-08-27",
"name": "River",
"category": "queues-workflow",
"license": "MPL-2.0 — LICENSE body is Mozilla Public License Version 2.0",
"license_verified": "body",
"claim": "Owns transactional background job execution in Go with jobs enqueued in the same Postgres transaction as the state change that caused them — removing the enqueue-vs-commit race entirely.",
"hosted_embeddable": "yes",
"limitations": "MPL-2.0 is file-level copyleft: safe to use and link, but modifications to River's own files must be published. Go-only, so it fits only if the worker tier is Go. 5.6k stars, push 2026-08-27.",
"disposition": "register"
}
pg-bossrecord 34
{
"id": "P09-R-034",
"evidence_class": "observed",
"source": "https://github.com/timgit/pg-boss",
"observed": "2026-08-27",
"name": "pg-boss",
"category": "queues-workflow",
"license": "MIT — GitHub license identifier MIT License",
"license_verified": "badge",
"claim": "Owns Node/TypeScript background jobs on Postgres with no additional infrastructure — the lowest-cost credible queue for a TS host that already runs Postgres.",
"hosted_embeddable": "yes",
"limitations": "Postgres-throughput-bound; not the right answer at very high job rates. Smaller project (3.9k stars) but steadily maintained, push 2026-08-24.",
"disposition": "top10"
}
graphile-workerrecord 35
{
"id": "P09-R-035",
"evidence_class": "observed",
"source": "https://github.com/graphile/worker",
"observed": "2026-08-27",
"name": "graphile-worker",
"category": "queues-workflow",
"license": "MIT — GitHub license identifier MIT License",
"license_verified": "badge",
"claim": "Postgres-backed job queue for Node with LISTEN/NOTIFY-driven low latency; can run jobs triggered directly by database triggers.",
"hosted_embeddable": "yes",
"limitations": "Overlaps pg-boss almost exactly; choosing both would be redundant. 2.4k stars, push 2026-08-06.",
"disposition": "register"
}
pgmqrecord 36
{
"id": "P09-R-036",
"evidence_class": "observed",
"source": "https://github.com/pgmq/pgmq",
"observed": "2026-08-27",
"name": "pgmq",
"category": "queues-workflow",
"license": "PostgreSQL License — LICENSE body is 'The PostgreSQL License', Copyright 2023 Tembo",
"license_verified": "body",
"claim": "Owns SQS-style message queue semantics as a pure Postgres extension, usable from any language rather than only Node or Go — relevant when donor-app runtimes are polyglot.",
"hosted_embeddable": "yes",
"limitations": "Extension install required, which constrains managed-Postgres choices. Provides queue primitives, not a worker framework — scheduling and retry policy remain the host's to build. 5.1k stars, push 2026-08-21.",
"disposition": "register"
}
Tenancy for Laravelrecord 37
{
"id": "P09-R-037",
"evidence_class": "observed",
"source": "https://github.com/archtechx/tenancy",
"observed": "2026-08-27",
"name": "Tenancy for Laravel",
"category": "multi-tenancy",
"license": "MIT — GitHub license identifier MIT License",
"license_verified": "badge",
"claim": "The single most-adopted general multi-tenancy framework found (4.4k stars, push 2026-08-27): automatic tenant identification, per-tenant database switching, and tenant-scoped cache/filesystem.",
"hosted_embeddable": "yes",
"limitations": "PHP/Laravel-only, so it cannot be a dependency for a TypeScript host — its value here is as a design reference for the tenant-context lifecycle, not as code to adopt.",
"disposition": "register"
}
django-multitenantrecord 38
{
"id": "P09-R-038",
"evidence_class": "observed",
"source": "https://github.com/citusdata/django-multitenant",
"observed": "2026-08-27",
"name": "django-multitenant",
"category": "multi-tenancy",
"license": "MIT — GitHub license identifier MIT License",
"license_verified": "badge",
"claim": "Enforces tenant scoping at the ORM layer so every query carries a tenant predicate automatically — the pattern Actionist needs, demonstrated in Python.",
"hosted_embeddable": "yes",
"limitations": "Python/Django-only and comparatively small (822 stars, push 2026-03-30). Reference value only for a TS host.",
"disposition": "register"
}
PostgRESTrecord 39
{
"id": "P09-R-039",
"evidence_class": "observed",
"source": "https://github.com/PostgREST/postgrest",
"observed": "2026-08-27",
"name": "PostgREST",
"category": "api-over-postgres",
"license": "MIT — LICENSE body is the MIT grant, 'Copyright (c) 2014-2026 The PostgREST contributors'",
"license_verified": "body",
"claim": "Turns the Actionist Postgres schema into a REST API where RLS policies are the authorization layer, so tenant isolation is enforced by the database for both internal and donor-app read paths rather than reimplemented per service.",
"hosted_embeddable": "yes",
"limitations": "Ties API shape to schema shape, making schema changes API-breaking; a deliberate coupling to accept. Community-owned MIT with no single vendor able to relicense — a durability advantage over Hasura and Supabase. 27.6k stars, push 2026-08-27.",
"disposition": "top10"
}
Hasura GraphQL Engine (v2)record 40
{
"id": "P09-R-040",
"evidence_class": "observed",
"source": "https://github.com/hasura/graphql-engine",
"observed": "2026-08-27",
"name": "Hasura GraphQL Engine (v2)",
"category": "api-over-postgres",
"license": "Apache-2.0 for the v2 engine in this repo — root LICENSE body is Apache 2.0; LICENSE-community present and MIT. Verified no separate proprietary server/LICENSE exists (checked, 404)",
"license_verified": "body",
"claim": "Would own an auto-generated GraphQL API with declarative row-level permissions over Actionist state.",
"hosted_embeddable": "conditional",
"limitations": "The Apache-2.0 grant covers v2, which is in maintenance (push 2026-08-19); Hasura's current product line (DDN/v3) is not this repository and its engine is not published here under the same terms. So the permissive licence and the live product are not the same thing — adopting v2 means adopting a maintenance-mode engine. This is precisely the badge-versus-substance trap, and it is why this is conditional rather than top10.",
"disposition": "register"
}
Supabase (meta-repo)record 41
{
"id": "P09-R-041",
"evidence_class": "observed",
"source": "https://github.com/supabase/supabase",
"observed": "2026-08-27",
"name": "Supabase (meta-repo)",
"category": "api-over-postgres",
"license": "Apache-2.0 on the meta-repo — LICENSE body is Apache 2.0. Component repos verified separately: supabase/realtime Apache-2.0, supabase/storage Apache-2.0, supabase/auth MIT, supabase/pg_graphql Apache-2.0",
"license_verified": "body",
"claim": "Supplies unbundled Postgres-native components the host can adopt individually — auth, realtime WebSocket fan-out of Postgres changes, S3-backed storage with Postgres metadata — rather than adopting the platform wholesale.",
"hosted_embeddable": "yes",
"limitations": "The meta-repo badge covers docs and studio, NOT the runtime components; each component had to be checked in its own repository, which is the lesson from the Composio SDK finding applied. Components are Apache-2.0/MIT and independently deployable, but they assume Supabase conventions (JWT claims, schema layout) that leak into the host's design.",
"disposition": "top10"
}