diff --git a/services/notification/poetry.lock b/services/notification/poetry.lock
index 677734c2840ddff7b35b1922a7a5d6851f56cba9..d37d50a66adcb48e9361a21f70f9232f9d471911 100644
--- a/services/notification/poetry.lock
+++ b/services/notification/poetry.lock
@@ -1,5 +1,19 @@
 # This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand.
 
+[[package]]
+name = "amqp"
+version = "5.2.0"
+description = "Low-level AMQP client for Python (fork of amqplib)."
+optional = false
+python-versions = ">=3.6"
+files = [
+    {file = "amqp-5.2.0-py3-none-any.whl", hash = "sha256:827cb12fb0baa892aad844fd95258143bce4027fdac4fccddbc43330fd281637"},
+    {file = "amqp-5.2.0.tar.gz", hash = "sha256:a1ecff425ad063ad42a486c902807d1482311481c8ad95a72694b2975e75f7fd"},
+]
+
+[package.dependencies]
+vine = ">=5.0.0,<6.0.0"
+
 [[package]]
 name = "beaker"
 version = "1.12.1"
@@ -523,6 +537,38 @@ files = [
     {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
 ]
 
+[[package]]
+name = "kombu"
+version = "5.3.2"
+description = "Messaging library for Python."
+optional = false
+python-versions = ">=3.8"
+files = [
+    {file = "kombu-5.3.2-py3-none-any.whl", hash = "sha256:b753c9cfc9b1e976e637a7cbc1a65d446a22e45546cd996ea28f932082b7dc9e"},
+    {file = "kombu-5.3.2.tar.gz", hash = "sha256:0ba213f630a2cb2772728aef56ac6883dc3a2f13435e10048f6e97d48506dbbd"},
+]
+
+[package.dependencies]
+amqp = ">=5.1.1,<6.0.0"
+vine = "*"
+
+[package.extras]
+azureservicebus = ["azure-servicebus (>=7.10.0)"]
+azurestoragequeues = ["azure-identity (>=1.12.0)", "azure-storage-queue (>=12.6.0)"]
+confluentkafka = ["confluent-kafka (==2.1.1)"]
+consul = ["python-consul2"]
+librabbitmq = ["librabbitmq (>=2.0.0)"]
+mongodb = ["pymongo (>=4.1.1)"]
+msgpack = ["msgpack"]
+pyro = ["pyro4"]
+qpid = ["qpid-python (>=0.26)", "qpid-tools (>=0.26)"]
+redis = ["redis (>=4.5.2)"]
+slmq = ["softlayer-messaging (>=1.0.3)"]
+sqlalchemy = ["sqlalchemy (>=1.4.48,<2.1)"]
+sqs = ["boto3 (>=1.26.143)", "pycurl (>=7.43.0.5)", "urllib3 (>=1.26.16)"]
+yaml = ["PyYAML (>=3.10)"]
+zookeeper = ["kazoo (>=2.8.0)"]
+
 [[package]]
 name = "mako"
 version = "1.2.4"
@@ -631,6 +677,24 @@ docs = ["alabaster (==0.7.13)", "autodocsumm (==0.2.11)", "sphinx (==7.0.1)", "s
 lint = ["flake8 (==6.0.0)", "flake8-bugbear (==23.7.10)", "mypy (==1.4.1)", "pre-commit (>=2.4,<4.0)"]
 tests = ["pytest", "pytz", "simplejson"]
 
+[[package]]
+name = "messaging"
+version = "2.8.4.dev1"
+description = "SSA Messaging is an AMQP-based asynchronous messaging system based on passing simple Python objects as JSON."
+optional = false
+python-versions = "~3.10"
+files = []
+develop = false
+
+[package.dependencies]
+kombu = "5.3.2"
+pycapo = "0.3.1"
+sqlalchemy = "1.4.49"
+
+[package.source]
+type = "directory"
+url = "../../shared/messaging"
+
 [[package]]
 name = "mock-alchemy"
 version = "0.2.1"
@@ -1221,6 +1285,17 @@ files = [
 docs = ["Sphinx", "repoze.sphinx.autointerface"]
 testing = ["coverage", "pytest", "pytest-cov"]
 
+[[package]]
+name = "vine"
+version = "5.1.0"
+description = "Python promises."
+optional = false
+python-versions = ">=3.6"
+files = [
+    {file = "vine-5.1.0-py3-none-any.whl", hash = "sha256:40fdf3c48b2cfe1c38a49e9ae2da6fda88e4794c810050a728bd7413811fb1dc"},
+    {file = "vine-5.1.0.tar.gz", hash = "sha256:8b62e981d35c41049211cf62a0a1242d8c1ee9bd15bb196ce38aefd6799e61e0"},
+]
+
 [[package]]
 name = "waitress"
 version = "2.1.2"
@@ -1371,4 +1446,4 @@ test = ["zope.testing"]
 [metadata]
 lock-version = "2.0"
 python-versions = "~3.10"
-content-hash = "47dfbf85c8dd13607bf94c32fcaa0968ea4d1801cc48865502657dcecfa0c769"
+content-hash = "6a0bd096489065b634478c652169175f015cb46ae5bf7578842de6fce6c948a0"
diff --git a/services/notification/pyproject.toml b/services/notification/pyproject.toml
index 5e243d067d667be7744dc32fbbd0ddbe75d570b1..afa8ba74e9b078c0df0bef6d012b29d3216e1672 100644
--- a/services/notification/pyproject.toml
+++ b/services/notification/pyproject.toml
@@ -30,6 +30,7 @@ pyramid-debugtoolbar = "4.10"
 pytest = "7.4.2"
 pytest-cov = "4.1.0"
 mock_alchemy = "0.2.1"
+messaging = {path = "../../shared/messaging"}
 
 
 [build-system]