This is the backend implementation of the Live Questions iOS app, which showcases the power and simplicity of using the Booster framework as a backend solution.
- Event driven design: The server is designed to process and respond to events rather than traditional requests, making it highly efficient as it can process multiple events concurrently and asynchronously.
- Event sourcing and CQRS: Stores all changes to the state of the backend as a sequence of events, like an event log, rather than in a traditional database, and use CQRS (Command and Query Responsibility Segregation) to separate the responsibilities of handling commands (inputs) and read models (outputs).
- Domain-driven design: Focus on defining the system in terms that are understandable by all stakeholders and breaking it down into small, cohesive components that represent different business entities and their relationships.
- GraphQL API: Booster generates a fully-working GraphQL API for your backend clients to use, without you worrying about writing resolvers or maintaining your GraphQL schema.
- Scalability and reliability: Booster offers scalability and reliability for high volume request and event handling, ensuring data consistency and availability through the use of cloud resources such as Lambdas, API Gateway, and DynamoDB.
Here are some steps you can follow to download and run the application locally.
$ git clone https://github.com/theam/livequestions-booster.git
$ cd livequestions-booster
$ npm install
$ boost start -e local
For testing in local or development environments, we suggest using the Altair GraphQL client. Simply enter the endpoint URL for your application, which is located at http://localhost:3000/graphql. It will also load the documentation for your API schema!
Note that if you are testing some Commands locally and don’t want to deal with the authentication part (we explain authentication later in the article), you can just keep the Command public and authorize it for ‘all’:
@Command({
authorize: 'all'
})
export class CreateTopic {…}
Keep in mind that subscriptions are currently not supported in a local environment. For that, you need to deploy the application to AWS, as explained in the Booster documentation.
Scalable Low-Code backends with Booster
From iOS Dev to full-stack in no time with Booster 🚀
Cloud File Management with Booster
Live Questions is released under the MIT License.