Hi all,
Having attained the status of 'reasonably competent, unlikely to blow
things up' with nameko, I'm thinking about how to reimplement some of my
company's systems in a nice microservice-y way.
We have a bunch of actions, file transfers, zip/unzip operations, data
imports, data processing, etc. These actions are chained together in
specific ways for each of our customers.
Now, if these operations were implemented as nameko services, I'd need some
way of storing the 'plan' for each of our customers and executing that plan
as needed.
What I'm thinking of is this:
A *Control* service which owns a database containing the client-specific
plan. The service is told to execute the plan for client 'A'. It consults
the plan and triggers the first service action in the plan. The service
(and all others) will end with a call back to the Control service to
indicate success/failure/etc. The Control service then kicks off the next
service in the plan. Lather, rinse, repeat until the plan is complete.
This appears to be a decent enough solution. It would give the ability to
resume a plan from a failed step, plus there could be methods in the
Control service to do things like finding out how far a plan has progressed.
So, a) does this sound sane?, and b) has anyone done something similar with
success?
Cheers,
Chris