diff --git a/gplanchat/durable-bundle/0.1/config/packages/durable.yaml b/gplanchat/durable-bundle/0.1/config/packages/durable.yaml
new file mode 100644
index 00000000..a45f630f
--- /dev/null
+++ b/gplanchat/durable-bundle/0.1/config/packages/durable.yaml
@@ -0,0 +1,23 @@
+durable:
+ # in_memory keeps the journal in the PHP process: right for tests, lost on restart.
+ # Use dbal to keep it in your database, or set temporal.dsn to reach a Temporal cluster.
+ event_store:
+ type: in_memory
+ workflow_metadata:
+ type: in_memory
+ activity_transport:
+ type: messenger
+ transport_name: durable_activities
+
+framework:
+ messenger:
+ transports:
+ durable_workflows: '%env(MESSENGER_DURABLE_WORKFLOW_DSN)%'
+ durable_activities: '%env(MESSENGER_DURABLE_ACTIVITY_DSN)%'
+
+ routing:
+ Gplanchat\Durable\Transport\ResumeWorkflowMessage: durable_workflows
+ Gplanchat\Durable\Transport\ActivityMessage: durable_activities
+ Gplanchat\Durable\Transport\FireWorkflowTimersMessage: sync
+ Gplanchat\Durable\Transport\DeliverWorkflowSignalMessage: sync
+ Gplanchat\Durable\Transport\DeliverWorkflowUpdateMessage: sync
diff --git a/gplanchat/durable-bundle/0.1/manifest.json b/gplanchat/durable-bundle/0.1/manifest.json
new file mode 100644
index 00000000..19512afc
--- /dev/null
+++ b/gplanchat/durable-bundle/0.1/manifest.json
@@ -0,0 +1,27 @@
+{
+ "bundles": {
+ "Gplanchat\\Durable\\Bundle\\DurableBundle": ["all"]
+ },
+ "copy-from-recipe": {
+ "config/": "%CONFIG_DIR%/"
+ },
+ "env": {
+ "#1": "Where workflow resumes and activity runs are queued.",
+ "#2": "sync:// handles them in the same process, which matches the in_memory",
+ "#3": "backend the config starts from. Point them at a real transport",
+ "#4": "(doctrine://, amqp://, redis://) when you move the journal off memory.",
+ "MESSENGER_DURABLE_WORKFLOW_DSN": "sync://",
+ "MESSENGER_DURABLE_ACTIVITY_DSN": "sync://"
+ },
+ "post-install-output": [
+ " * Durable starts on the in_memory backend: workflows run, and are lost with the process.",
+ " Set event_store.type and workflow_metadata.type to dbal in",
+ " config/packages/durable.yaml to keep the journal in your database, and point the two",
+ " MESSENGER_DURABLE_*_DSN variables at a real transport.",
+ "",
+ " * Then run the workers:",
+ " php bin/console messenger:consume durable_workflows durable_activities",
+ "",
+ " * Documentation: https://durable.rocks/docs/getting-started/"
+ ]
+}