pyms icon indicating copy to clipboard operation
pyms copied to clipboard

Publisher Subscriber support

Open avara1986 opened this issue 5 years ago • 0 comments

Not all microservices are RESTful service. A common use case is read and/or write information form a queue. A simple solution (and in most case, the best solution) to retrieve data from a queue is a serverless solution like AWS Lambdas or Google Cloud Functions. But, imagine that: you must have a stream of data, and a heavy processing (more than 5-10 minutes) and this process must run in a Kubernetes cluster. In this case, you need a main process with an healthcheck (or status, or metrics) endpoint and other process listening a queue.

Steps:

  • Create a Driver patter like Crypt Driver to support multiple queues systems (Redis; SQS, PubSub, Kafka, AMP, AMQP...)
  • This Queue must run in a different process of main Flask application
  • Update the main class Microservice to search for a Queue Resource
  • Create a blueprint like Healthcheck to get information of the queue (status, pending messages, errors...)

avara1986 avatar Sep 24 '20 15:09 avara1986