Option A: Integrate an existing open source project like Discourse.
Good: Basic commenting and moderation features already implemented
Bad: Administrative costs — have to keep a foreign codebase running reliably
Bad: Less control over the user experience — might be the biggest deal breaker. Some things like the ux for anonymous posting, integration with other parts of the system will require a custom design for the quality of service we're going to need.
Bad: High resource usage compared to the rest of the system. Here's an example of resource usage with relatively low load:
Bad: Have to implement basic commenting and moderation features
Good: full control over the user experience
Good: small resource overhead
Good: No need for special knowledge for maintaining the system
Verdict
I'd go with option B -- we don't need that many features from existing solutions but would like to integrate deeply to the rest of the system. Also custom design is very important to us.
Ideas
Students should be able to post either with their own name or with a nickname. The nickname option is to lower the barrier for posting.
Should have support for forum posts that are only public for the students of a course -- many people are not confortable with posting to a public forum.
Support for forum discussions.
Options
Option A: Integrate an existing open source project like Discourse.
Option B: Custom solution
Verdict
I'd go with option B -- we don't need that many features from existing solutions but would like to integrate deeply to the rest of the system. Also custom design is very important to us.
Ideas