-
Notifications
You must be signed in to change notification settings - Fork 4
FAQs
devsda edited this page May 15, 2019
·
2 revisions
- Instead of providing executers for different languages, ex : Java, Scala, Python, C++, Shepherd prefers to do all the communication through HTTP protocol with its clients. This way, Shepherd’s clients has to take care of corresponding language executor.
- This helps to avoid Business logic of Client inside Shepherd boundary.
- If Shepherd provides language executors, then it expects business logic of Client in Shepherd boundary. This way, it actually move clients away from SOA architecture. And, it actually gives pain to all its clients who owns multiple endpoints to update their business logic inside Shepherd boundary.
- Shepherd is a platform that provides workflow management concept. Shepherd does not contain any client Business logic/data inside it.
- Shepherd communicates through endpoints with clients. (Example -> REST endpoints, AWS Lambda, Azure Functions, Database endpoints, etc).
- Shepherd provides 2 MB space to each execution for inter node communication.
- Client can store shared data in form of document using GET/PUT API.
- Its recommended to use this space for your metadata only. Store your actual data on blob services (AWS S3 / Azure Blob service).
- For Conditional workflow : Every node has to return Edge name as response. Shepherd use this information to execute next node in the given workflow.
- For Unconditional workflow : Shepherd will execute all the child nodes, once parent execution completed.