Skip to content

feat(amgi-pulsar): add Apache Pulsar support - #121

Open
TomKimber wants to merge 1 commit into
mainfrom
feat/add-apache-pulsar
Open

TomKimber wants to merge 1 commit into
mainfrom
feat/add-apache-pulsar

Conversation

@TomKimber

Copy link
Copy Markdown
Contributor

Add Apache Pulsar support: #52.

Copilot AI lite review requested due to automatic review settings September 25, 2026 19:25
@read-the-docs-community

read-the-docs-community Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Documentation build overview

📚 AMGI | 🛠️ Build #35128150 | 📁 Comparing 9632eb2 against latest (7f72e38)

  🔍 Preview build  

4 files changed
± specifications.html
± specifications/bindings.html
± specifications/lifespan.html
± specifications/message.html

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Address the four unresolved moderate issues in producer caching, partition-key handling, binding propagation, and None serialization.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 2 Medium severity

Open (2)
What changed in this PR

Adds Apache Pulsar support to AMGI, including a new server package, bindings, tests, documentation, examples, and CI integration.

Changes:

  • Adds asynchronous Pulsar message receiving, sending, acknowledgements, and redelivery.
  • Adds PulsarKey, integration tests, and Docker example configuration.
  • Updates dependencies, packaging, documentation, and CI.

Unresolved issues include a producer-cache race, incorrect empty partition-key handling, dropped bindings in the sending path, and serializing None as "null".

File Summary
uv.lock Locks the new package and Pulsar dependency.
tox.ini Adds Pulsar test and import environments.
README.md Documents Pulsar availability.
packages/​asyncfast/​tests_asyncfast/​test_message_object_bindings.py Tests Pulsar key serialization.
packages/​asyncfast/​src/​asyncfast/​bindings.py Adds PulsarKey binding support.
packages/​amgi-pulsar/​tests_amgi_pulsar/​test_pulsar_message.py Tests sender initialization.
packages/​amgi-pulsar/​tests_amgi_pulsar/​test_pulsar_message_integration.py Adds Pulsar integration coverage.
packages/​amgi-pulsar/​tests_amgi_pulsar/​__init__.py Defines the test package.
packages/​amgi-pulsar/​src/​amgi_pulsar/​py.typed Enables distributed type information.
packages/​amgi-pulsar/​src/​amgi_pulsar/​__init__.py Implements the Pulsar server and sender.
packages/​amgi-pulsar/​README.md Documents installation and usage.
packages/​amgi-pulsar/​pyproject.toml Defines package metadata and dependencies.
packages/​amgi-pulsar/​LICENSE Adds package licensing.
example/​README.md Documents the Pulsar example.
example/​pyproject.toml Adds the Pulsar example dependency.
example/​apache-pulsar/​docker-compose.yaml Provides a local Pulsar service.
docs/​specifications/​bindings.rst Documents Pulsar bindings.
.pre-commit-config.yaml Adds Pulsar typing dependencies.
.github/​workflows/​tests.yml Adds Pulsar to CI.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/amgi-pulsar/src/amgi_pulsar/__init__.py Outdated
Comment thread packages/asyncfast/src/asyncfast/bindings.py
@codecov

codecov Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Handler cleanup, bounded shutdown, and message-consumption backpressure need resolution before production use.

4 open findings
2 resolved since last review

🧠 Review effort: Balanced

Comment thread packages/amgi-pulsar/src/amgi_pulsar/__init__.py
Comment thread packages/amgi-pulsar/src/amgi_pulsar/__init__.py
Comment thread packages/amgi-pulsar/src/amgi_pulsar/__init__.py
Comment thread docs/specifications/bindings.rst Outdated
@TomKimber
TomKimber force-pushed the feat/add-apache-pulsar branch from 936a7af to ac82eda Compare October 10, 2026 19:13
Comment thread packages/amgi-pulsar/tests_amgi_pulsar/test_pulsar_message_integration.py Outdated
@TomKimber
TomKimber force-pushed the feat/add-apache-pulsar branch 3 times, most recently from 042f511 to 6e7d76d Compare October 13, 2026 20:29
@read-the-docs-community

read-the-docs-community Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Documentation build overview

📚 AsyncFast | 🛠️ Build #35128151 | 📁 Comparing 9632eb2 against latest (7f72e38)

  🔍 Preview build  

1 file changed
± message_payload.html

@TomKimber
TomKimber force-pushed the feat/add-apache-pulsar branch 5 times, most recently from 2cfabc3 to fa2b0b2 Compare October 13, 2026 20:57
@TomKimber
TomKimber force-pushed the feat/add-apache-pulsar branch from fa2b0b2 to 9632eb2 Compare October 13, 2026 21:02
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.

3 participants