🔒 The Problem#
Physical keys don't scale and don't audit. Every locker assignment meant a manual handoff, every lost key meant a re-key, and there was no record of who accessed what, when — just a facilities team tracking a key ring by hand. On top of that, maintenance staff needed occasional access without becoming permanent keyholders, which the physical-key model has no good answer for.
💡 The Decision#
Keyless access via IoT padlocks was the obvious hardware call. The less obvious decision was orchestration: locker access isn't a single request-response — it's a sequence (reserve → generate a time-limited passcode → deliver it → track hardware state → eventually revoke it) with real branching for edge cases like maintenance access. I used AWS Step Functions instead of chaining Lambda calls directly, specifically so that sequence is a durable, observable workflow rather than logic scattered across function code — that's what made temporary passcodes for maintainers a small addition instead of a parallel system.
Notifications got the same "don't hand-roll it" treatment: SES for email, SNS for real-time multi-channel alerts, both triggered by the same event-driven workflow rather than bolted onto individual functions.
🏗️ How It Was Built#
Two loops:
Request. A booking hits API Gateway, Lambda handles the business logic, and Step Functions orchestrates the workflow — reservation, validation, passcode generation — as a single durable state machine instead of ad-hoc function chaining.
Access. The IoT padlock unlocks via Bluetooth/WiFi against the time-limited passcode. SES delivers it by email; SNS pushes real-time status and maintenance alerts. Every lock reports health and battery status continuously, so failures surface before they become a stuck locker.
Network access is restricted to the organization only, with RBAC + MFA on top and full audit logging — the access trail the physical-key system never had.
📈 Impact & Results#
- 80% fewer manual interventions — passcode generation and delivery are fully automated, down from a facilities team manually tracking keys
- 100+ concurrent users at 99.5% uptime with automatic failover
- Complete audit trail and RBAC-gated access, plus temporary maintainer passcodes that never existed as a capability under the physical-key system
Key Achievements
80% fewer manual interventions
100+ concurrent users supported
99.5% uptime with automatic failover
Automated locker access and notifications, delivering a secure, organization-restricted solution with automated maintenance workflows
