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  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  might be a sufficient lightweight alternative. Also, leveraging existing plugin tools such as Pluggy  the new project could remove the need for factories.
-  https://github.com/SUSE-Enceladus/mash/
-  https://zeromq.org/
-  https://pluggy.readthedocs.io/en/stable/
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...
- 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
This project is one of its kind!