Skip to content

add: Solve challenge 1#618

Open
Mario1210m wants to merge 1 commit intoyaperos:mainfrom
Mario1210m:challenge/Mario-Rivera
Open

add: Solve challenge 1#618
Mario1210m wants to merge 1 commit intoyaperos:mainfrom
Mario1210m:challenge/Mario-Rivera

Conversation

@Mario1210m
Copy link
Copy Markdown

Selected challenge

I chose Challenge 1 because it allowed me to focus on transactional outbox, idempotent consumers, and eventual consistency trade-offs.

Key architectural decisions

  • Used NestJS for the service structure and clear module boundaries.
  • Implemented transactional outbox to avoid publishing directly inside the DB transaction.
  • Added idempotency handling on the consumer side.
  • Exposed a status endpoint that reflects eventual consistency honestly.

Alternatives considered

  • Publishing directly to Kafka inside the transaction was rejected because it risks data loss and inconsistent state.
  • A simpler synchronous approach was rejected because the challenge is centered on resilience and asynchronous processing.

What I would do with more time

  • Add more integration and failure-recovery tests.
  • Improve observability with tracing and metrics.
  • Harden retry and DLT policies.

Known limitations / shortcuts

  • Local-only setup assumptions.
  • Simplified operational configuration for the sake of the exercise.
  • Some production-grade concerns could be expanded further.

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