Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE REQUEST] Proposal for Integration of FerretDB as an Alternative Database Backend for OpenIM #2250

Open
cubxxw opened this issue Apr 27, 2024 · 0 comments

Comments

@cubxxw
Copy link
Contributor

cubxxw commented Apr 27, 2024

Why this feature?

OpenIM currently relies on MongoDB for data storage. While MongoDB has served us well, its SSPL license poses potential restrictions and lacks flexibility in certain configurations compared to emerging open-source databases. This proposal aims to integrate FerretDB, a MongoDB-compatible open-source database that avoids licensing constraints and offers more backend storage options, enhancing OpenIM's adaptability and performance.

Suggested Solution

OpenIM's current implementation fully supports MongoDB for all data operations and transactional processes.

Identified Shortcomings

  • Licensing Restrictions: MongoDB's SSPL license can be restrictive for some businesses.
  • Configuration Rigidity: Limited flexibility in scaling and custom configurations with MongoDB.

Proposed Improvements

  • Database Flexibility: Integrating FerretDB to provide more backend choices.
  • Enhanced Adaptability: Improving the system's configurability for different operational environments.

Project Goals

  • Achieve seamless integration of FerretDB with OpenIM.
  • Maintain or enhance performance and compatibility with existing systems.
  • Provide comprehensive documentation and developer support to facilitate adoption.

Technical Plan

  1. Driver and Library Adjustments

    • Modify or replace the MongoDB data driver to ensure compatibility with FerretDB.
    • Update connection handling and database interaction codes as necessary.
  2. Configuration and Deployment

    • Revise configuration management in OpenIM to support FerretDB deployment and operations.
    • Update environment variables and dependency management setups.
  3. Performance Optimization

    • Conduct performance testing and tuning to ensure optimal operations with FerretDB.
  4. Testing and Validation

    • Implement detailed functional testing to verify that all existing features work correctly with FerretDB.
    • Address any emerging issues during the integration process.
  5. Documentation and Support

    • Update developer documentation and user manuals with new installation steps, configuration options, and troubleshooting guides.

Additional Resources

Call to Action

We invite contributors to discuss this proposal in our Slack channel and contribute to refining this integration approach. Join us at: OpenIM Slack

Additional Information

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant