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

Database integration #6

Open
Happy-Ferret opened this issue Jan 4, 2022 · 1 comment
Open

Database integration #6

Happy-Ferret opened this issue Jan 4, 2022 · 1 comment
Milestone

Comments

@Happy-Ferret
Copy link
Collaborator

Happy-Ferret commented Jan 4, 2022

Group configuration, filters, stickers, Welcome/Goodbye messages and other persistent data need to be stored in a database.

Viable options are PickleDB and MongoDB, with a preference for the latter.

@Happy-Ferret Happy-Ferret created this issue from a note in Bot Development (Backlog) Jan 4, 2022
@Happy-Ferret Happy-Ferret added this to the 0.1.0 milestone Jan 4, 2022
@Happy-Ferret
Copy link
Collaborator Author

Happy-Ferret commented Jan 4, 2022

  • Evaluate PickleDB and MongoDB
    • Is key-value storage enough, or is a full fledged document database the better option?
      • consider the bot being used by a number of supergroups. Scalability.

TODO: Simple example of getting a value out of either DB (Welcome message).

PickleDB

Upsides

  • Doesn't require a complex setup or external driver.

Downsides

  • Less flexible. Key-value only (does have lists/dicts, alas).
    • Will require lots of parsing and sanitizing.
  • Limited migration options.
  • No active development.
    • Most recent version (0.9) is more than 2 years old.

MongoDB

Upsides

  • Flexible (full fledged document database)
  • Well documented
  • Actively developed
  • Drivers for most mainstream programming languages.
  • Simplified migration

Downsides

  • Requires a database cluster.
  • Pick a MongoDB Atlas cluster
    • Location? Maybe outside of Europe due to impending Telegram crackdown in Germany?

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

No branches or pull requests

1 participant