SimpleTravel Co is a travel app with a problem—it’s too popular! The app has scaled rapidly and is now running into multiple issues with infrastructure and rolling out changes. In this liveProject, you’ll step into the role of a software engineer tasked with helping them out by rebuilding SimpleTravel’s app as a serverless application on AWS. You’ll start using Infrastructure as Code to control the app’s resources, then complete and automate the software release process with a reliable deployment pipeline. Next, you’ll utilize TypeScript to help catch errors that don’t show up until deployment. Finally, you’ll use Amazon EventBridge to build a pair of microservices using event-driven development.
SimpleTravel has grown—and now your boss wants multiple teams to handle different microservices that all interconnect and communicate through the exchange of domain events. You’ll be overseeing this by developing a prototype event-driven application that’s fully serverless. Your system will be built on three core principles: automation, decoupling, and type safety. You’ll begin by setting up shared infrastructure for your team, then implement microservices for the site’s checkout and shipping. Your new system will be poised for success, combining efficiency, flexibility, and reliability.
In this liveProject, you’ll help travel company SimpleTravel transition their booking app from a JavaScript codebase to TypeScript. SimpleTravel is experiencing problems with its development flow due to typing errors not being caught at development time. You’ll work to fix this problem by taking an existing Node.js application and rewriting it using TypeScript features like classes and interfaces. Finally, you'll implement a new building mechanism to compile your TypeScript code and run it on AWS Lambda.
SimpleTravel Co has just established IaC—now they’re ready to start automating all the steps of their deployment pipeline! In this liveProject, you’ll help them do just that. You’ll utilize the Amazon CodePipeline and CodeBuild services to build a multi-step deployment pipeline, automating dull manual tasks and carefully deploying your application while checking for bugs and errors.
SimpleTravel Co has scaled too fast! Their travel booking app has proven wildly successful, but now they’re facing a lack of accountability, inconsistencies in their infrastructure, and issues rolling back problematic deployments. Luckily, the CTO has an idea—one he’s given you the job of implementing. Your task in this liveProject is to investigate and establish Infrastructure as Code (IAC) for SimpleTravel, so that they can describe their infrastructure using friendly YAML or JSON syntax and sidestep all the issues of manual deployments. Let’s get started!
In this series of liveProjects, you will take on the role of a developer for travel company SimpleTravel. It offers an all-inclusive trip booking service to customers. With the growth of SimpleTravel, more customers ask for flexible queries, but this is almost impossible to achieve with its REST APIs. After a couple of internal meetings it was decided to implement GraphQL APIs to replace the existing APIs.
Each project in this series covers a different stage of the replacement process until you have a fully functioning GraphQL API with authentication in place. We will start with the creation of a data source using Amazon DynamoDB, then implement the GraphQL API using AWS AppSync. We will then protect this API using Amazon Cognito.
In this series of liveProjects, you’ll migrate business-critical features of a travel application from a legacy monolith to a new microservices-based architecture that uses AWS Lambda and AWS Step Functions. You’ll step into the shoes of a software engineer working for SimpleTravel, a company that offers a one-stop solution for vacation breaks. You’ve been tasked with handling the migration of the core functionalities of the SimpleTravel app delivering a solution that will improve the application’s robustness and scalability. But beware, you don’t have so much time. Luckily, AWS fully managed services are an excellent resource to help make this migration pain free. Each liveProject in this series covers a different migration task, letting you pick and choose the skills you need to master.
In this liveProject, you’ll use Amazon Cognito to restrict access to a GraphQL API. Previously, SimpleTravel’s APIs were publicly accessible. But you’ve seen a surge of new customers, and now your boss wants to ensure that access is limited to authorized users. Your challenges include creating an Amazon Cognito user pool and implementing group-based authorization in AWS AppSync.
In this liveProject, you’ll use a GraphQL API implemented using AWS AppSync to add a new hotel to SimpleTravel’s records. Then, you’ll implement a GraphQL subscription to automatically notify consumers who are interested in these events. This approach will modernize the API for the travel company, supporting the scaling of its business.
In this liveProject, you’ll replace SimpleTravel’s existing REST API. The company has grown, and new consumers want to be able to customize data returned by this API. Due to the inflexible nature of the REST paradigm, the new API will be implemented using GraphQL.
In this liveProject, you’ll use the Amazon DynamoDB NoSQL database to replace SimpleTravel’s relational database. The company decided to use DynamoDB as its flexible schema is well suited to the changing nature of the data being stored. Furthermore, it’s fully managed by AWS so the company doesn’t need to deal with servers and low-level configurations. Once you’ve created the data store, you will implement a Lambda function to query data from it.
In this liveProject, you’ll integrate Step Functions with SNS for a “best of both worlds” solution to microservices coordination. This approach is perfect for when you know the exact services involved in a business scenario, allowing you to describe this cooperation using service orchestration and AWS Step Functions.
In this liveProject, you’ll use AWS Step Functions to preserve service coordination between newly split microservices functions. This cooperation between services is vital for large-scale microservices architectures. Luckily, the built-in Step Functions feature of AWS can supervise your microservices orchestration and ensure their continued reliability and scalability.
In this liveProject, you’ll use AWS Step Functions to preserve service coordination between newly split microservices functions. This cooperation between services is vital for large-scale microservices architectures. Luckily, the built-in Step Functions feature of AWS can supervise your microservices orchestration and ensure their continued reliability and scalability.
In this liveProject, you’ll build a new recommendation service for a travel application that’s migrating to microservices. Taking on the role of a software engineer for SimpleTravel, you’ll use AWS Lambda functions to quickly implement production-ready microservices. You’ll start by implementing Lambda functions using the AWS Console, and then script them with AWS Command Line Interface.