[Migration] MongoDB Atlas Sync depracated. #609
Replies: 8 comments 12 replies
-
Shall we keep the current repositories interface and implement them with a RESTful API, so we can keep the sync features and allow the further extension |
Beta Was this translation helpful? Give feedback.
-
@charlieJ107 I think we can propose our own ideas, and we discuss them, finally we choose the best solution. I remember you have some ideas about the database interface before. Here I provide some key features in the current Paperlib database that we should consider for the alternative solution:
|
Beta Was this translation helpful? Give feedback.
-
I believe the first issue we need to resolve is determining how much we want to change the current codebase and how many breaking changes we are willing to tolerate. Based on this, I propose two potential solutions with their pros and cons. Option 1: Maintain the existing codebase, build a compatibility layerThe core of this solution is to remove the deprecated Realm features and build a compatibility layer to integrate new data storage and access methods into the current codebase. Pros:
Cons:
Option 2: Full project refactor, front-end/back-end separationThis solution involves a complete project refactor with a front-end/back-end separation architecture, decoupling data access from other services, and redesigning the system to be more flexible and modern. Pros:
Cons:
My RecommendationI think we need to reach a consensus on our short-term and long-term goals. If the goal is to quickly address the issue, Option 1 can serve as a temporary solution. However, in the long run, I favor Option 2 as it offers more flexibility and future scalability. We should carefully balance the costs and benefits of a full refactor and have thorough discussions on how to decouple existing components and adopt best practices to ensure the robustness of the system. |
Beta Was this translation helpful? Give feedback.
-
Thanks for your ideas. As we have one year for this, it would be OK to choose option 2. And, I have already finished the front-end/back-end separation work in the branch Thus, if we choose option 2, we will still focus mainly on implementing the database. if we decide to implement the database part by ourselves, I think maybe we can mix option 1 and option 2:
|
Beta Was this translation helpful? Give feedback.
-
I'm investigating this database: https://rxdb.info/ It's an open-source database with a sync function. |
Beta Was this translation helpful? Give feedback.
-
Thank you for your great work on refactoring and decoupling the front end and back end in the new branch. I think we can now focus on designing a scalable and flexible data access architecture. My suggestion is to refer to the common practice of Apps on mobile devices and adopt a two-layer data architecture with multiple parallel Data Sources and a unified Data Repository. Taking the Paper data as an example, there is usually a unified The main purpose of I am happy to contribute an independent Web API application for synchronization backend. This web service is designed to run on the cloud, interact with the application through the HTTP-based Restful API, and provide a relatively simple web page to view the content in the database online (of course, the plug-in system cannot be implemented in the Web, but the client can store the data processed by the plug-in system in this API backend). We can provide a version that users can manage by themselves. Users with certain operation and maintenance experience can host their own storage backend. I can also develop an extended version to provide official synchronization services from Paperlib. This extended version will expand the account system belonging to Paperlib and lay the foundation for future team sharing and other functions. The API backend idea is still in the prototype stage, but if it works (in other words, Paperlib has ambitions to offer official services), I'd be happy to discuss the details. Let me know what others think of this part. |
Beta Was this translation helpful? Give feedback.
-
I just checked the atlas, currently we cannot even create a new sync service. It means that for all new users, Paperlib cannot do the cross device sync. |
Beta Was this translation helpful? Give feedback.
-
Can I deploy MongoDB Atlas Sync in the cloud by myself, what should I fill in that address, I use docker |
Beta Was this translation helpful? Give feedback.
-
Hi folks, @igoogolx @charlieJ107
Thanks you both again for your consistent contribution to Paperlib.
We have a really big trouble. #607
MongoDB Atlas announced that they are deprecating the device sync and device sdk. Paperlib highly relies on these two functions.
We need to migrate these two functions before Sep 2025.
As it's a really big change, I wish you could help me with it.
The first step is finding a alternative solution.
Really appreciate.
(We can discuss in either English or Chinese, if you prefer. I believe we both speak Chinese)
Beta Was this translation helpful? Give feedback.
All reactions