Skip to content

feat: consume ledger posting commands - #18

Merged
ramioooz merged 2 commits into
mainfrom
feature/103-ledger-posting-consumer
Sep 4, 2026
Merged

ramioooz merged 2 commits into
mainfrom
feature/103-ledger-posting-consumer

Conversation

@ramioooz

@ramioooz ramioooz commented Sep 4, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Consume governed LedgerPostingRequested.v1 commands in Ledger Service.
  • Persist an inbox record for durable event-id deduplication and redelivery handling.
  • Reuse the existing immutable, balanced, idempotent ledger posting use case.
  • Keep the consumer disabled by default until SIT producer/topic configuration is enabled.
  • Publish this runtime change as image 0.0.4 with Helm chart 0.4.0.

Project tracking

Verification

  • ./mvnw --batch-mode --no-transfer-progress verify
  • Unit phase: 21 tests passed.
  • Integration phase: 28 tests passed, including Testcontainers PostgreSQL.
  • helm lint helm --strict --values helm/values-sit.yaml
  • helm template ledger-service helm --namespace digital-bank-sit --values helm/values-sit.yaml
  • git diff --check

Merge and rollout

This PR can merge after the existing Transaction Service producer and SIT topic/configuration PRs are available. There is no required delay between merges. Enable ledger.posting.consumer.enabled only after the governed topic and producer are deployed, then roll out Ledger Service with image digital-bank-java/ledger-service:0.0.4.

No public HTTP route is added. The consumer maps the governed command into the existing internal ledger posting path, while the inbox and database uniqueness constraints protect redelivery and concurrent processing.

@ramioooz

ramioooz commented Sep 4, 2026

Copy link
Copy Markdown
Member Author

Related delivery links:

Merge order: those Transaction Service and SIT configuration changes are already merged. This Ledger consumer PR can merge now; no delay is required. Enable ledger.posting.consumer.enabled only after the governed Kafka topic and producer are deployed, then roll out Ledger Service.

Verification on the branch: ./mvnw --batch-mode --no-transfer-progress verify passed with 21 unit-phase tests and 28 Testcontainers PostgreSQL integration tests; git diff --check passed. The consumer is disabled by default and adds no public HTTP route.

@ramioooz

ramioooz commented Sep 4, 2026

Copy link
Copy Markdown
Member Author

Release-safety correction: the consumer branch now publishes image digital-bank-java/ledger-service:0.0.4 and Helm chart 0.4.0 instead of reusing the existing 0.0.3/0.3.0 release. Helm lint, template rendering, and git diff --check pass.

@ramioooz
ramioooz merged commit 4da1e39 into main Sep 4, 2026
3 checks passed
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.

1 participant