← Atlassian Interview Insights
Start by clarifying requirements and scale, then outline a high-level architecture that separates kiosk edge logic from backend services. Dive into critical flows like payment authorization, idempotent refill, and offline sync, while addressing failure modes and trade-offs. Conclude with operational aspects like monitoring, updates, and fraud handling.
Pro tip: Emphasize idempotency and reconciliation as the backbone of reliability; show how you'd design for exactly-once semantics in a distributed, occasionally connected system. Mention that cash handling requires physical audit trails and periodic reconciliation to detect discrepancies.
Ask about expected transaction volume, kiosk connectivity patterns, payment provider integrations, and regulatory constraints. Establish non-functional requirements like latency, availability, and consistency.
Propose a layered architecture: kiosk edge (with local storage and offline queue), API gateway, payment service, refill service, inventory service, and monitoring. Discuss data flow for online and offline modes.
Detail the refill transaction flow: payment authorization, idempotent refill request, and reconciliation. Explain offline mode: queueing transactions, syncing when online, and conflict resolution.
Discuss double-charges (idempotency keys, deduplication), lost refills (write-ahead logging, retries), kiosk compromise (secure boot, encryption), and network partitions (CAP theorem trade-offs, eventual consistency).
Cover software updates (staged rollout, rollback), fleet monitoring (heartbeats, metrics), alerting, and capacity planning (sharding, hot partitions). Mention fraud detection and chargeback handling.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.