Offline First Database Comparison
In this project I have implemented the exact same chat application with different database technologies. You can use it to compare metrics and learn about the differences. The chat app is web based angular application, with functionality similar to Whatsapp Web.

Implemented Databases:
- AWS Ampflify Datastore
- Firebase Firestore
- PouchDB & CouchDB
- RxDB & GraphQL
- WatermelonDB (no backend sync atm)
Metrics
All metrics are measured automatically via code in a browser tests (chrome). The results heavily depend on the developers device. You should compare the values relative to another and not as absolute values. Also you might want to create new metrics that better represent how you would use the respective database.
You can reproduce these values by running sh measure-metrics.sh in the root folder.
Untitled
Metrics Explanation
- Page load time: How long does it take to download and parse the JavaScript bundle.
- First angular component render: How long does it take for the first angular component to be rendered.
- First full render: How long does it take until all relevant data is displayed for the first time.
- Insert one message: How long does it take to insert a single message.
- Inserting 20 messages one after another: How long does it take to insert 20 messages in serial.
- Inserting 20 messages in parallel: How long does it take to insert 20 messages in serial.