Project Description

A lot of workloads and scripts are relatively simple and driven by messages. The majority of the code goes towards handling incoming and outgoing messages, queuing/coordinating tasks, logging, handling authentication/authorization and etc. The actual work performed is a small function with a linear set of steps to perform.

This led us to develop Mash [1] as a set of services that are driven via a message queue (AMQP). Each service could be modified by adding/removing "plugins". For our example this was a plugin for each CSP.

To leverage this design strategy we want to take the generic service code from Mash and create a separate project that can be used as a building block to quickly stand up new services. We also want to research new ideas and/or other concepts that can be leveraged to make this new project even better.

For example Mash relies on AMQP messaging but for a simple set of chained services something like ZeroMQ [2] might be a sufficient lightweight alternative. Also, leveraging existing plugin tools such as Pluggy [3] the new project could remove the need for factories.

  • [1] https://github.com/SUSE-Enceladus/mash/
  • [2] https://zeromq.org/
  • [3] https://pluggy.readthedocs.io/en/stable/

Goals

The goal for Hackweek is to have a working package that provides a way to easily build a message based service. Though given the timeline it will likely not be production ready.

The project will be developed on GitHub, link to follow...

Resources

  • AMQP (RabbitMQ) https://www.rabbitmq.com/tutorials/amqp-concepts.html
  • MQTT (RabbitMQ) https://www.rabbitmq.com/mqtt.html
  • ZeroMQ https://zeromq.org/
  • Pluggy https://pluggy.readthedocs.io/en/stable/
  • Pop https://pop-book.readthedocs.io/en/latest/main/seed.html

Looking for hackers with the skills:

Nothing? Add some keywords!

This project is part of:

Hack Week 23

Activity

  • 9 months ago: amunoz joined this project.
  • 9 months ago: seanmarlow started this project.
  • 9 months ago: seanmarlow originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    This project is one of its kind!