RxDB, which stands for Reactive Database, is a JavaScript-based NoSQL database designed for a wide range of applications such as websites, hybrid apps, Electron apps, progressive web apps, and Node.js. The "reactive" aspect of RxDB allows you not only to retrieve the current state of the database but also to subscribe to all changes in the state, including query results or specific fields within a document. This feature is particularly advantageous for real-time user interface applications, as it facilitates development and offers notable performance benefits. Additionally, RxDB can be utilized to build efficient backends in Node.js.
Offline-First Architecture
RxDB is designed with an offline-first approach, allowing applications to function seamlessly without a constant internet connection by utilizing local storage and synchronizing with the server when online.
Reactive Data Stores
The library offers real-time data synchronization and reactive data stores, enabling automatic updates to the UI when the underlying database changes.
Cross-Platform Compatibility
RxDB works across various platforms, including web browsers, Node.js, and mobile devices, providing flexibility for developers in building cross-platform applications.
Flexible Schema Management
RxDB supports JSON Schema for defining data models, allowing developers to enforce data consistency and validation effectively.
Replication and Sync
Comes with built-in replication features that ensure easy data synchronization between client and server databases, helping maintain data consistency across different devices and users.
We have collected here some useful links to help you find out if RxDB is good.
Check the traffic stats of RxDB on SimilarWeb. The key metrics to look for are: monthly visits, average visit duration, pages per visit, and traffic by country. Moreoever, check the traffic sources. For example "Direct" traffic is a good sign.
Check the "Domain Rating" of RxDB on Ahrefs. The domain rating is a measure of the strength of a website's backlink profile on a scale from 0 to 100. It shows the strength of RxDB's backlink profile compared to the other websites. In most cases a domain rating of 60+ is considered good and 70+ is considered very good.
Check the "Domain Authority" of RxDB on MOZ. A website's domain authority (DA) is a search engine ranking score that predicts how well a website will rank on search engine result pages (SERPs). It is based on a 100-point logarithmic scale, with higher scores corresponding to a greater likelihood of ranking. This is another useful metric to check if a website is good.
The latest comments about RxDB on Reddit. This can help you find out how popualr the product is and what people think about it.
Iโm doing offline-first apps at work and want to emphasize that youโre constraining yourself a lot trying to do this. As mentioned, everything fast(ish) is using SQLite under the hood. If you donโt already know, SQLite has a limited set of types, and some funky defaults. How are you going to take this loosey-goosey typed data and store it in a backend database when you sync? What about foreign key... - Source: Hacker News / 11 months ago
> I'm thinking to give it a try in one of my React Native apps that face very uncertain connectivity. Some similar stuff you may want to investigate (no real opinion, just sharing since I've investigated this space a bit): - https://rxdb.info. - Source: Hacker News / over 1 year ago
Looks like it could be a more batteries-included/opinionated alternative to RxDB (https://rxdb.info). The relational queries might help some people who tend to think in SQL as opposed to documents (as in CouchDB or MongoDB) and the WebSockets for synchronization will help people get started more quickly. (RxDB provides interfaces for those who want to implement their own storage engine and/or synchronization... - Source: Hacker News / about 2 years ago
Some years ago "offline-first" was a thing: https://web.archive.org/web/20170720174332/http://hood.ie/initiatives/#offline-first Primarily based on PouchDB/CouchDB. Now the site redirects to RxDB. https://rxdb.info/ There's still a site by that name but I don't quite understand what's the intention https://offlinefirst.org/. - Source: Hacker News / about 2 years ago
I'm interested in this problem also! I think there is a large overlap with projects that market/focus on offline-first experiences. AFAIK this problem can be solved by: 1) Considering a client-side copy of the database that gets synced with the remote DB. This is an approach [PowerSync](https://www.powersync.com/) and [ElectricSql](https://electric-sql.com/) and [rxdb](https://rxdb.info/) take! - Source: Hacker News / over 2 years ago
Hey, after I posted that, I went and gave a second look online to see if I could find something that would allow me to develop a local-first app with offline persistence and syncing capabilities. I ended up finding some possibilities out there that could potentially help me build stuff. One of them is RxDB [1], which offers WebRTC syncing - you'd still need a signaling server, I suppose, but all sensitive... - Source: Hacker News / over 2 years ago
About a year ago, I discovered a cool offline-first framework called RxDB. Initially, I thought that on the frontend side, this was exactly what I had been searching for over the past years. After tinkering around and even using it in production for some time, I realized that it wasn't well-suited for my intended use. RxDB was initially created as an RxJS layer for PouchDB with a server replication interface.... - Source: dev.to / over 2 years ago
Congrats to the team. Once Iโve tried https://rxdb.info/ and it wasnโt funny at all to do the remote replication (PG) and to deal with conflicts. I do need to check this out! - Source: Hacker News / almost 3 years ago
For anyone who wants to not only make jokes but actuall learn something, I recommend to start with exploring the github repo: https://github.com/pubkey/rxdb. Source: almost 4 years ago
Sounds like the feature set of RxDB [1]. [1] https://github.com/pubkey/rxdb. - Source: Hacker News / almost 4 years ago
Offline. Both Firebase Firestore and Amplify AppSync also support offline persistence. Since they know your database schema, it's easy to offer a local replica and conflict resolution. There are vendor agnostic alternatives like RxDB or Redux Offline that take more glue work. Being Offline-first requires you to have a local replica of your data, which means that doing CRUD against your local replica can be much... - Source: dev.to / almost 5 years ago
Not the one youโre replying to but I like RxDB. Good typescript, pretty simple setup. Source: about 5 years ago
You should have a look at RxDB which does exactly what you have described. Also notice that neither firebase nor supabase is really offline-first. https://github.com/pubkey/rxdb. - Source: Hacker News / about 5 years ago
So now I am here again with the goal to get some feedback of people who try out EventReduce on top of their database. [1] https://github.com/pubkey/rxdb [2] https://news.ycombinator.com/item?id=22888239. - Source: Hacker News / about 5 years ago
Based on recent discussions, mentions, and reviews, RxDB is recognized as a noteworthy player in the realm of JavaScript-based real-time NoSQL databases. Positioned in the NoSQL, Document Databases, and Developer Tools categories, it stands alongside competitors like PouchDB, SignalDB, Firestore, and Redis. This summary encapsulates the multifaceted public opinion surrounding RxDB, as gleamed from technical discourse across several online platforms.
Strengths and Appeal
RxDB is lauded primarily for its "offline-first" capabilities, which enable seamless operation in environments with uncertain connectivity. This feature resonates well with developers looking to create applications with robust offline persistence and synchronization traits. The database's reactive nature allows users to subscribe to state changes, providing real-time updatesโa critical asset for developers building Progressive Web Apps (PWAs), hybrid apps, and other JavaScript applications.
Its capability of functioning as a local-first app with WebRTC syncing capabilitiesโallowing end-to-end encryptionโis another noteworthy strength. This aspect is particularly appealing for developers aiming to enhance data privacy without the overhead of a traditional client-server model. Furthermore, RxDB's flexibility to interface with storage types beyond PouchDB, such as IndexedDB and SQLite, is appreciated for broadening its usability across different scenarios.
Challenges and Areas for Improvement
The primary critique of RxDB lies in its dependency on RxJS, a JavaScript library for reactive programming. While RxJS offers significant power, it complicates the developer experience, especially for those new to reactive programming paradigms or those needing to integrate RxDB into codebases that are not RxJS-based. This complexity can deter some developers who seek simpler integration processes.
Another area of criticism is its handling of remote replication and conflict resolution, which some users find cumbersome, especially in complex database synchronization scenarios. This usability issue can be a deterrent for developers who prioritize seamless integration and conflict-free data synchronization.
Position in the Database Ecosystem
RxDB has carved a niche for itself among "offline-first" frameworks, a niche that has evolved significantly from its early days alongside PouchDB/CouchDB. The database's unique value proposition of enabling real-time updates and comprehensive offline functionality makes it an attractive choice for specific applications.
However, there is a recognition that it might not be suitable for all use cases. Developers inclined toward traditional relational databases or those requiring less manual configuration for conflict resolution may seek alternatives like Firebase Firestore, Realm.io, or emerging solutions that offer more streamlined out-of-the-box experiences.
Conclusion
In conclusion, RxDB is a potent tool for developers focused on building robust offline-first applications with real-time synchronization. Its strengths lie in its flexible storage capabilities and real-time data reactivity, while its challenges predominantly revolve around RxJS integration complexity and remote replication nuances. As the landscape of offline-first applications continues to evolve, RxDB remains a potent option for developers willing to navigate its learning curve for the benefits it offers.
Do you know an article comparing RxDB to other products?
Suggest a link to a post with product alternatives.
Is RxDB good? This is an informative page that will help you find out. Moreover, you can review and discuss RxDB here. The primary details have not been verified within the last quarter, and they might be outdated. If you think we are missing something, please use the means on this page to comment or suggest changes. All reviews and comments are highly encouranged and appreciated as they help everyone in the community to make an informed choice. Please always be kind and objective when evaluating a product and sharing your opinion.