Closed vi4m closed 7 years ago
:+1: for using just raw redis.
We could use redis not only as job queue (we're using it right now through RQ - is simple, but covers all our requirements) - we could use it as a message broker/cache in microservices world.
Inkpy is IMO not perfect example for presenting microservices architecture - inpky could be used as (synchronous) job executor using just RQ - everything we need is to schedule job on specific queue (ex. ext_pdf
) with template and data passed. Inkpy should be plugged into redis (using python-rq) and listed on this queue. It's simple usage of rq jobs just like in Ralph 2.
If we want to have real microservices (ex. display content from external service), we could also use redis to do this (assuming for example only static content displayed by external service).
Proposed requirements:
DataCenterAsset
, but external service has only information about servers security - tab is hidden (and not accessible) for example for switches etc.)There are few possibilities to achieve this:
Notice that option 1 and 3 are quiet similar, with advantage in option 1 when there is no persistance - when something is not in cache just call external service to get it.
To consider deeply:
@andrzej-jankowski @quamilek please rate this ideas too (maybe I'm missing something about redis etc).
Done
Introduction
According to the Zen of Ralph we should avoid introducing new requirements for the main ralph package.
Recently we started work on generating PDF reports / transition outprints which doesn't cover ralph scope itself.
Therefore i propose simple and flexible architecture for separating concerns, following industry standards microservices architecture to separater further ralph modules to separate processes.
Ralph extensions architecture
Every new ralph extension, such as inky connector should be separated from main ralph package.
Example - inkpy