The Flashcards application is a highly scalable and completely serverless application hosted in AWS. The application consists of a React SPA, or single-page application, user interface which interacts with the LEANSTACKS REST API to search, create, and manage decks of flashcards. The REST API is backed by a suite of serverless microservices in AWS Lambda. The microservices store information in highly scalable DynamoDB tables. Amazon Cognito secures the application. Users may sign up for a LeanStacks account or may authenticate using popular services like Google.
Open the Flashcards application.
Content Delivery Network (CDN)
React SPA User Interface
The Flashcards UI component is constructed using modern, single-page application technologies and techniques. The foundation of the technlogy stack is the React Framework.
The UI obtains data from the LEANSTACKS
REST API. The REST API is implemented in Amazon API Gateway. The Gateway authenticates requests with AWS Lambda Authorizers before routing the requests to backend services.
The Flashcards application allows users to freely browse and use published, public decks of flashcards without an account. However, users must sign into the application to create their own personalized decks of flashcards. Amazon Cognito manages the security for the Flashcards application. Users may create a LEANSTACKS
account or authenticate using popular, third-party services like Google. Amazon Cognito securely houses account information and issues OAuth tokens which grant access to the LEANSTACKS
The business functionality is implemented in fine-grained, domain-specific microservices. The microservices are deployed as AWS Lambda functions. The Lambda functions utilize microservice design patterns such as Robust API
, and Internal Handoff
Some application features, such as determining the most popular decks of flashcards, require microservices to be invoked on a schedule rather than triggered by user action, i.e. the REST API. Amazon CloudWatch Rules publish CloudWatch Events that invoke microservices on a flexible, configurable schedule.
Amazon DynamoDB tables serve as the primary database. DynamoDB is inexpensive to operate, highly scalable, and serverless.
- AWS Amplify
- AWS SDK
- Node.js 8.10
- Serverless Framework