Download the PHP package gplanchat/durable-bridge-temporal without Composer
On this page you can find all versions of the php package gplanchat/durable-bridge-temporal. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download gplanchat/durable-bridge-temporal
More information about gplanchat/durable-bridge-temporal
Files in gplanchat/durable-bridge-temporal
Package durable-bridge-temporal
Short Description Temporal journal EventStore + worker (gRPC, no Temporal PHP SDK) for gplanchat/durable
License MIT
Informations about the package durable-bridge-temporal
gplanchat/durable-bridge-temporal (src/Bridge/Temporal)
gRPC bridge (without the official Temporal PHP SDK) to persist the Durable journal in a minimal Temporal workflow.
Read-only mirror. This repository is a subtree-split of gplanchat/durable-dev, published so Composer can require this package on its own. Issues and pull requests are disabled here — open them on the monorepo.
The tests are in the monorepo, not here. This split carries source only. What covers it is
tests/unit/Bridge/Temporal/in the monorepo, run by itsunitsuite.Documentation: durable.rocks.
PHP namespace: Gplanchat\Bridge\Temporal.
Deployment invariant: when Temporal is enabled for Durable, the journal (EventStore) and application queues share the same Temporal connection (temporal://…). Access mode (journal receive-only vs application envelope) is selected via options.purpose (journal | application) or inferred (presence of inner ⇒ application). Schemes temporal-journal:// and temporal-application:// are still accepted and normalized to temporal://.
Requirements
- PHP ext-grpc
- A reachable Temporal frontend (e.g.
host:7233)
Components
| Class | Role |
|---|---|
TemporalJournalEventStore |
Implements Gplanchat\Durable\Store\EventStoreInterface |
TemporalTransportFactory |
Single temporal:// factory: journal (TemporalJournalTransport, receive-only) or application (TemporalApplicationTransport + inner) from purpose / inner |
TemporalJournalTransport |
Symfony Messenger receive-only transport (same temporal://… DSN, no inner by default); consumed with messenger:consume <transport_name> |
TemporalApplicationTransport |
Wraps a real Messenger transport (temporal://…?inner=… or options.inner) for Durable application messages |
TemporalBridgeBundle |
Registers the temporal:// Messenger factory |
Transport DSN (single scheme)
Query parameters: namespace, task_queue or journal_task_queue, workflow_type, workflow_task_queue, activity_task_queue, identity, tls (bool).
Journal (receive-only)
Without inner and without options.purpose=application, the transport is TemporalJournalTransport.
Application queues (inner)
Or temporal://… without inner in the URL and options: { purpose: application, inner: 'in-memory://' } in Messenger config.
inner(required for application mode): DSN of the real Symfony Messenger transport (Redis, Doctrine, in-memory, etc.).workflow_task_queue/activity_task_queue: used for gRPC evolution; while the envelope delegates toinner, application traffic uses that inner transport.
Symfony
- In the monorepo the code lives under
src/Bridge/Temporal; in a split repo:composer require gplanchat/durable-bridge-temporal. - Register
Gplanchat\Bridge\Temporal\TemporalBridgeBundlein the kernel. framework.messenger.transports.<name>: 'temporal://…'(withoutinner, journal DSN — e.g.journal_task_queue=durable-journal).messenger:consume <name>(standard Symfony worker; poll and journal task handling are insideTemporalJournalTransport::get()).- Wire
EventStoreInterfacetoTemporalJournalEventStorewhere appropriate (explicit DI).
FrankenPHP worker
Same idea as messenger:consume: run the Messenger worker under FrankenPHP worker mode (or systemd) with messenger:consume <journal_transport> pointing at temporal://… without inner.
License
MIT — see WA004.
Further reading
- DUR019 — Temporal gRPC bridge and journal:
documentation/adr/DUR019-temporal-grpc-bridge-and-journal.md
All versions of durable-bridge-temporal with dependencies
gplanchat/durable Version self.version
google/common-protos Version ^4.9
google/protobuf Version ^4.31
grpc/grpc Version ^1.57
psr/log Version ^1.1 || ^2.0 || ^3.0
symfony/messenger Version ^6.4 || ^7.0 || ^8.0
symfony/http-kernel Version ^6.4 || ^7.0 || ^8.0
symfony/dependency-injection Version ^6.4 || ^7.0 || ^8.0
symfony/config Version ^6.4 || ^7.0 || ^8.0