Symphony is an open source runtime designed to make it easy for developers to build collaborative web applications. Symphony handles the complexities of implementing collaboration, including conflict resolution and real-time infrastructure, freeing developers to focus on creating unique and engaging features for their applications.
Symphony comes batteries included:
- Conflict resolution using CRDTs
- Real-time propagation of state changes
- Monitoring
- Persistence
To use Symphony, you must have the following prerequisites installed on your system:
Once you have installed these tools, follow the steps below to configure the gcloud CLI tool with your account credentials.
- Run
gcloud init --console-only
in your Terminal - Enter your Google account credentials when prompted
- Press Enter to confirm your input
For further details, consult the offical docs
Once you have installed the dependencies and configured the AWS CLI tool, you can proceed with the installation of the Symphony CLI tool.
Before starting a Symphony project, you’ll need to download the Symphony CLI tool from npm.
Run npm install -g symphony-cli
to install the CLI globally.
Once the installation is complete, you can get started with your first real-time collaborative application powered by Symphony.
- Run
symphony compose <projectName>
. This command creates a newprojectName
directory, initializes a new Node project with the requiredpackage.json
, and scaffolds some initial starter files. cd projectName
- run
npm i
within the project directory - Modify the
symphony.config.js
file to include your domain name that you want your project to be hosted at. - Write your application code using the conflict-free data types provided by Symphony.
- When you’re done, run the command
symphony deploy
to deploy your application on Google Cloud Platform (GCP).
Once all your infrastructure has been provisioned, you’re ready to go. You’ve just deployed a real-time collaborative application in 5 steps. You can open your developer dashboard on localhost by running symphony dashboard
.