Какой лучший способ хранить данные с помощью плагина?

Если вам нужно хранить только один ID темы (например, как настраиваемое значение), самый простой нативный для Discourse способ — использовать SiteSetting.
Вы также автоматически получаете встроенный интерфейс администратора.

config/settings.yml:

plugins:
  my_plugin_enabled:
    default: true
    client: false

  my_plugin_topic_id:
    default: 0
    client: false
    type: topic      # предоставляет селектор тем в интерфейсе администратора

В вашем Ruby-коде плагина:

topic_id = SiteSetting.my_plugin_topic_id
topic = Topic.find_by(id: topic_id)

Если вы предпочитаете хранить это программно (не как настройку),
PluginStore также подходит для одной пары ключ-значение:

store = PluginStore.new("my_plugin")
store.set("topic_id", some_topic_id)

topic_id = store.get("topic_id")