7  User Forum

7.1 Overview

The forum service enables projects to request their own user forum on demand, providing a critical tool for community building and user support. By offering a dedicated space for discussions, the forum allows the project, its stakeholders, and users to interact seamlessly, fostering a sense of community and collaboration. This interaction not only aids in addressing user concerns and questions but also encourages the sharing of knowledge and best practices among members.

The underlying technology for the forum service is Discourse, a widely used open-source forum software renowned for its robustness and flexibility. Discourse has been successfully implemented in various ESA projects, demonstrating its reliability and effectiveness. One of the standout features of Discourse is its comprehensive admin interface, which empowers projects to customize the user forum to meet their specific requirements. This customization can include modifying the forum’s appearance, setting user permissions, and managing content. Moreover, Discourse supports a wide range of plugins that can significantly enhance the forum’s functionality, providing a versatile solution that can adapt to the evolving needs of any project.

7.2 Showcase Scenarios

A user forum can support several project scenarios, including:

  • Knowledge Sharing and Collaboration: Forums bring together experts, researchers, and enthusiasts to share knowledge and insights, fostering a collaborative environment. Users can post questions and receive answers from the community, helping to solve problems more efficiently.
  • Community Building: Forums help build a sense of community among users who share a common interest in the project. Users can connect with others, potentially leading to additional collaborations and partnerships.
  • Feedback and Improvement: Project members can receive direct feedback from users, allowing for continuous improvement and refinement of the project tools and methodologies. Users can suggest new features or enhancements, ensuring the project evolves according to user needs.
  • Support and Training: Forums provide a platform for users to seek technical support and troubleshooting assistance. Users can participate in discussions to enhance their skills and knowledge.
  • Awareness and Outreach: Forums can be used to disseminate information about project updates, events, and relevant news.

7.3 User Stories

An ESA project wants to apply their own branding to a forum, this means showing their project name and logo in a prominent location, as well as applying their own color scheme.

An ESA project wants to administer their own forum. They should be able to group relevant users into a ‘project_X_admin’ group, giving them the ability to modify and moderate their forum.

An ESA project wants to have a safe default for forum terms and conditions, as well as a suitable privacy policy that complies with EU law.

As APEx operators, we want to ensure a backup of the database, to avoid loosing forum history in case of disaster.

As APEx operators, we want to operate many forums in an efficient (cost-effective) manner. We can make the assumption that the majority of forums will be low-traffic, receiving less than 10 posts per day. We can also expect forums to be very inactive for long periods of time.

As APEx operators, we want to apply forum security and bugfixes to all instances, in a cost-effective manner.

As APEx operators, we want to have observability on forum response times, to be able to be notified of forum instances that misbehave.

As APEx operators, we want to impose/define limits on forum usage, to make sure that costs stay within the foreseen bounds, and to be notified when a project requires an upgrade to a larger package. This could be a limit on the number of daily http requests, or by configuring the pods with a certain size.

7.4 Business Model

The default forum will be offered for a fixed yearly fee, as part of a larger default APEx package.

7.4.1 Base offering

A forum is included in the basic APEx package. This is intended for projects that expect a limited number of concurrent users that interact with the forum. The following conditions & limitations apply:

  • Automatic backup is included
  • The instance is monitored by the APEx team in terms of basic health parameters.
  • The forum is not configured to be highly available.
  • Forum maintenance and restart may require (announced) downtime for short timeframes.
  • Upon an unforeseen event, a recovery may be needed, which will be performed only during working hours.
  • The forum software is configured with 1 CPU and 4GB RAM.
  • The forum content is stored on a database cluster, which is shared with other projects.

7.4.2 Large forum offering

Projects that outgrow the offer included in the basic package, or that simply expect high forum usage, should request this offer.

The following conditions & limitations apply:

  • Automatic backup is included
  • The instance is monitored by the APEx team in terms of basic health parameters.
  • The forum is configured to be highly available.
  • Upon an unforeseen event, a recovery may be needed, which will be performed only during working hours.
  • The forum software is configured with 4 CPUs and 16GB RAM per server.
  • The forum content is stored on a separate database, isolated from other projects.

7.5 Technical Architecture

Technical architecture of the User Forum Service

This infrastructure is designed to host the user forums for multiple projects, each within its own Kubernetes namespace. The setup ensures isolation, scalability, and efficient management of resources. The main components include an ingress controller, the Discourse forum, storage, a database and a mail server.

The overall architecture is defined by the following components:

  • Ingress: This component is responsible for routing external traffic to the appropriate project namespace based on the URL. It uses rules to direct traffic to forum.project-x.esa.int.
  • Namespace: Each project (e.g., forum.project-a.esa.int and forum.project-b.esa.int) has its own namespace for resource isolation. Each instantiated namespace will spawn the following components:
    • Discourse: This service will host the actual Discourse forum.
  • Storage: Provides persistent storage for the user forum assets.
  • Database Managed Service: This is a centralized managed database service that is linked to the Discourse instances. By default, the database service will be shared among all user forum instances to reduce management overhead and minimize costs. Despite the shared infrastructure, each forum will remain completely isolated to ensure project separation. For highly active user forums, APEx will also offer the option to host the forum on a dedicated database infrastructure, though this option comes at a higher cost.
  • Mail server: An email SMTP server that allows the user forum to send email notifications.

An important consideration in this setup is the cost of the managed database service. Using the pricing calculator from OTC, the cheapest option seems to be 744€/year. This is not a huge amount, but would mean we may want to keep it out of the default package. A design that shares a database instance may support many low traffic forums, at a lower cost.

7.5.1 Dependencies on shared components

  • Log Aggregation
  • Observability
  • Monitoring
  • DNS configuration
  • Identity and Access Management

7.5.2 Security considerations

Security fixes need to be applied.

These are public forums. We may want to indicate in the T&C that these are not configured to be used for sensitive information, to avoid liability.

7.6 Operational Management

The user forum operates within a Kubernetes environment shared across all APEx Instantiation Services. A dedicated namespace will be used to host the user forum that was requested for a single project. An important consideration in this setup is the cost of the managed database service. As the cost of a database can be high considering the traffic it needs to handle for a specific project, APEx is envisioning to provide two tiers to support projects of different scales:

  • A basic offering, where the user forums are sharing a database instance, can support many low-traffic forums at a lower cost.
  • A large forum offering with increased resource limits and its own dedicated database instance. This option mainly targets larger projects with a larger user base and high forum usage but comes at a higher cost.

Continuous monitoring of the Kubernetes cluster is crucial for maintaining optimal performance and availability of the instantiated user forums. Automated maintenance tasks, including updates and backups, are regularly conducted to minimize downtime and uphold data integrity.