FAQ
Vacation Tracker is a system designed to track leave requests and the number of remaining PTO days. It integrates with Slack and Microsoft Teams, allowing users to see leave information directly within these platforms and even request or approve leaves using simple commands or buttons.
Vacation Tracker adopted a serverless architecture primarily because it offered auto-scaling, auto-failover capabilities, and cost efficiency, which were crucial for their small startup team that lacked extensive DevOps experience. Serverless allowed them to build prototypes quickly and focus on functionality without managing server infrastructure.
The main challenges included managing and scaling a growing number of Lambda functions, integrating new features with existing server-based and serverless components, and transitioning from a mixed architecture to a fully serverless solution.
Vacation Tracker's architecture evolved through several phases, from a simple serverless bot to a more complex system using AWS services like Lambda, API Gateway, and DynamoDB. They implemented CloudFormation for infrastructure management and adopted an event-driven architecture with CQRS to better handle state and events.
Testing and monitoring are crucial for ensuring the reliability and efficiency of Vacation Tracker's serverless architecture. They employ a range of strategies including unit and integration testing, using real AWS resources for accurate results, and maintaining robust monitoring systems to quickly respond to issues.
Despite the generally low cost of serverless, Vacation Tracker keeps a close eye on their AWS usage to manage expenses effectively. They experienced a significant cost from a single bug related to DynamoDB usage, underscoring the importance of careful resource management and debugging practices.
Vacation Tracker addresses onboarding challenges by assigning developers their own AWS environments, allowing them to learn by directly interacting with a replica of the production system. This hands-on approach helps new developers understand the serverless components and architecture incrementally.
Comments