{"id":28158516,"url":"https://github.com/indeedeng/iwf-java-samples","last_synced_at":"2025-05-15T09:20:05.259Z","repository":{"id":64691600,"uuid":"548064497","full_name":"indeedeng/iwf-java-samples","owner":"indeedeng","description":"samples for iwf-java SDK","archived":false,"fork":false,"pushed_at":"2024-10-07T23:47:07.000Z","size":412,"stargazers_count":6,"open_issues_count":3,"forks_count":4,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-05-07T23:40:06.924Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/indeedeng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-10-08T21:27:59.000Z","updated_at":"2024-10-07T23:47:10.000Z","dependencies_parsed_at":"2023-11-30T00:23:58.102Z","dependency_job_id":"1fc8c31e-6ff0-4b71-a280-fee18adf5cf9","html_url":"https://github.com/indeedeng/iwf-java-samples","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indeedeng%2Fiwf-java-samples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indeedeng%2Fiwf-java-samples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indeedeng%2Fiwf-java-samples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indeedeng%2Fiwf-java-samples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/indeedeng","download_url":"https://codeload.github.com/indeedeng/iwf-java-samples/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254310502,"owners_count":22049471,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-15T09:19:42.877Z","updated_at":"2025-05-15T09:20:05.230Z","avatar_url":"https://github.com/indeedeng.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iwf-java-samples\n\nSamples for [iWF Java SDK](https://github.com/indeedeng/iwf-java-sdk) that runs\nagainst [iWF server](https://github.com/indeedeng/iwf).\n\nWe also have smaller [code snippets](https://github.com/indeedeng/iwf-java-code-snippets) (also known as mini demos) that demonstrate how to utilize [iWF](https://github.com/indeedeng/iwf) to perform a minimum funcion.\n\n## Setup\n\n1. Start a iWF server following the [instructions](https://github.com/indeedeng/iwf#how-to-run-this-server)\n2. Run this project by using gradle task `bootRun`.\n\n_Note that by default this project will listen on 8803 port\n\n## Product Use case samples\n\n### [Money transfer workflow/SAGA Patten](src/main/java/io/iworkflow/workflow/money/transfer)\nThis example shows how to transfer money from one account to another account.\nThe transfer involves multiple steps. When any step fails, the whole transfer is canceled with some compensation steps.\n\n### [User sign-up/registry workflow](src/main/java/io/iworkflow/workflow/signup)\n\nA [common use case](src/main/java/io/iworkflow/workflow/signup) that is almost everywhere -- new user sign-up/register a new account in a website/system.\nE.g. Amazon/Linkedin/Google/etc...\n\n### [Microservice ochestration](https://github.com/indeedeng/iwf-java-samples/tree/main/src/main/java/io/iworkflow/workflow/microservices)\nThis is the code that is [shown in iWF server as an example of microservice orchestration](https://github.com/indeedeng/iwf#example-microservice-orchestration).\n\n### [JobSeeker Engagement workflow](https://github.com/indeedeng/iwf-java-samples/tree/main/src/main/java/io/iworkflow/workflow/engagement)\n\u003cimg width=\"709\" alt=\"Screenshot 2023-04-21 at 8 53 25 AM\" src=\"https://user-images.githubusercontent.com/4523955/233680837-6a6267a0-4b31-419e-87f0-667bb48582d1.png\"\u003e\n\n\nSee [Engagement](https://github.com/indeedeng/iwf-java-samples/tree/main/src/main/java/io/iworkflow/workflow/engagement)\nfor\nhow to build an jobSeeker engagement workflow.\n\n\n* An engagement is initiated by an employer to reach out to a jobSeeker(via email/SMS/etc)\n* The jobSeeker could respond with decline or accept\n* If jobSeeker doesn't respond, it will get reminder\n* An engagement can change from declined to accepted, but cannot change from accepted to declined\n\n### [Job Post System (a mini Indeed.com)](https://github.com/indeedeng/iwf-java-samples/tree/main/src/main/java/io/iworkflow/workflow/jobpost)\n\nSee [JobPost](https://github.com/indeedeng/iwf-java-samples/tree/main/src/main/java/io/iworkflow/workflow/jobpost) for\nhow to build an JobPost system like Indeed.com\n\nSupport typical CRUD operations:\n\n* Create a job with tile, description and notes\n* Read a job\n* Update a job\n* Delete a job\n\nAnd also\n\n* Search for jobs using full-text search\n* Update will trigger a background action to update external system with eventual consistency\n\n### Subscription workflow\n\nSee [Subscription](https://github.com/indeedeng/iwf-java-samples/tree/main/src/main/java/io/iworkflow/workflow/subscription)\nwith [unit tests](https://github.com/indeedeng/iwf-java-samples/tree/main/src/test/java/io/iworkflow/workflow/subscription)\nfor the use case also described in:\n\n* [Temporal TypeScript tutorials](https://learn.temporal.io/tutorials/typescript/subscriptions/)\n* [Temporal go sample](https://github.com/temporalio/subscription-workflow-project-template-go)\n* [Temporal Java Sample](https://github.com/temporalio/subscription-workflow-project-template-java)\n* [Cadence Java example](https://cadenceworkflow.io/docs/concepts/workflows/#example)\n\nIn additional, iWF provides \"Auto-ContinueAsNew feature to allow running the workflow infinitely\n\n### [Shortlist Candidates workflow](https://github.com/indeedeng/iwf-java-samples/tree/main/src/main/java/io/iworkflow/workflow/shortlistcandidates)\n\u003cimg width=\"709\" alt=\"Candidate Shortlisting Use Case\" src=\"src/main/java/io/iworkflow/workflow/shortlistcandidates/use_case.png\"\u003e\n\n\nSee [ShortlistCandidates](https://github.com/indeedeng/iwf-java-samples/tree/main/src/main/java/io/iworkflow/workflow/shortlistcandidates)\nfor\nhow to build a workflow to automatically establish connections with shortlisted candidates on behalf of an employer.\n\n* Design a workflow as long-term storage: leveraging the attributes of iWF to retain the employer opt-in information in [EmployerOptInWorkflow](https://github.com/indeedeng/iwf-java-samples/blob/main/src/main/java/io/iworkflow/workflow/shortlistcandidates/EmployerOptInWorkflow.java).\n* Retrieve the attributes of another workflow from within a different workflow: checking the employer's opt-in status stored in the [EmployerOptInWorkflow](https://github.com/indeedeng/iwf-java-samples/blob/main/src/main/java/io/iworkflow/workflow/shortlistcandidates/EmployerOptInWorkflow.java) when making a decision on whether to automatically contact shortlisted candidates for that employer in the [ShortlistWorkflow](https://github.com/indeedeng/iwf-java-samples/blob/main/src/main/java/io/iworkflow/workflow/shortlistcandidates/ShortlistWorkflow.java).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findeedeng%2Fiwf-java-samples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Findeedeng%2Fiwf-java-samples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findeedeng%2Fiwf-java-samples/lists"}