Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Shutdown() is implemented by both merchants but declared by no interface — interface holders cannot clean up [PR #120 review debt]

Open Beginner friendly
#1,026 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
go
Domain
api, backend

Research direction

Read the interface definitions at src/merchant/merchant.go:336 and src/merchant_types/types.go:35, then compare them with the existing Shutdown() error implementations at src/merchant/merchant.go:568 and src/merchant/merchant_degraded.go:104. Add the lifecycle method to the intended interface or interfaces and confirm both implementations satisfy the contract; callers holding those interfaces should be able to shut down without type assertions.

Written by the indexing model from the issue text.

Description

bug

From the review-debt audit of PR #120 (mint resilience; merged 2026-05-26). Thread: 3279314729. Still present at current main.

Shutdown() exists on both merchant implementations but on no interface. Merchant (src/merchant/merchant.go:568) and MerchantDegraded (src/merchant/merchant_degraded.go:104) both implement Shutdown() error, but neither MerchantInterface (src/merchant/merchant.go:336 — no Shutdown in its body) nor the provider-facing merchant_types.PaymentMerchant (src/merchant_types/types.go:35) declares it. Callers holding the interface (including MerchantProvider consumers) still cannot invoke clean shutdown without type assertions — the original review's exact point, unaddressed 5 months later. Fix: add Shutdown() error to the interface(s) that are meant to own the lifecycle contract (and keep both implementations satisfying it).

Dominant language
Go
Stars
12
Forks
14
Avg merge
1d 4h
Merged PRs (30d)
237

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from OpenTollGate/tollgate-module-basic-go

All issues in OpenTollGate/tollgate-module-basic-go

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.