-
Notifications
You must be signed in to change notification settings - Fork 11
Project: MongooseIM
- Website: https://www.erlang-solutions.com/products/mongooseim.html
- GitHub: https://github.com/esl/mongooseim/
- Responsible: Piotr Nosek, Michal Piotrowski, Mateusz Bartkowiak
MongooseIM is a robust and efficient chat (or instant messaging) platform aimed at large installations.
If you have any questions or want to suggest your own idea, send an e-mail to beam-community AT googlegroups DOT com.
Through its event based architecture MongooseIM allows (third-party) modules to interface with various kinds of internal behaviours and processing of stanzas. By exposing those events to configurable REST APIs, MIM flexibility could be made accessible to web based services as well and thus encourage wide spread adoption of XMPP integrated services within the web community.
Expected result: a module that
- lets external web based services register at internal hooks,
- routes and exposes the internal API of those calls respectively to those registered URLs.
Knowledge prerequisites: Erlang or any other functional language, REST/HTTP
Possible Mentors: Piotr Nosek, Michal Piotrowski
XEP-0163 defines a protocol to broadcast state change events associated with an account. It enables an XMPP user account to function as a virtual publish-subscribe service, easing handling notifications associated with such an account.
MongooseIM server implements XEP-0163, so-called PEP, in the mod_pubsub module. Current implementation is suboptimal, mainly because it runs on general purpose pubsub code. A specialised implementation of a subset of the pubsub functionality required by PEP can be more efficient in terms of consumed resources and end user experience.
The student is expected to:
- prepare a load test scenario and run it against the current PEP implementation
- implement PEP
- compare the new implementation with the old one using the load test scenario prepared
Expected results:
- new pubsub modules implementing XEP-0163 PEP
- a report comparing load tests of the old and new implementations
Knowledge prerequisites: Intermediate Erlang
Possible Mentors: Piotr Nosek, Michal Piotrowski