-
Notifications
You must be signed in to change notification settings - Fork 4
Shepherd Project Structure
This wiki helps to understand project structure, and its different modules.
- shepherd-core
- shepherd-model
- shepherd-client
- shepherd-web
- dominos-shepherd-client
This is the backbone of Shepherd backend.
- It majorly contains
- Web-Server, which serves Shepherd customer's requests.
- Node Executor
- Node Tracker
Shepherd-model contains all the contract information. For example, Models, exceptions, constants, enums. This helps to sync the contract between Shepherd-core, and Shepherd-client. This is consumed by shepherd-core and shepherd-client.
Shepherd-client is a SDK written in Java. Shepherd consumer can inject this module as dependency to request workflow execution from their application layer. Shepherd SDK communicates to Shepherd-Core through through REST protocol. It consumes shepherd-model as dependency, which helps to be in sync with Shepherd-Core regarding Contract.
Shepherd-web is a Web portal to manage all your endpoints, CI/CD pipeline through UI. Customer can also trigger workflow(Execute/Restart/Resume/Kill) from UI. This module is written in Node JS.
This is a sample module, which helps customers to write their APIs, and how to use Shepherd-SDK. Currently, we released Java SDK. Thats why, this module is in Java. It is using Jetty for its Web Server.