Workshop 6 Starter Code
This lesson demonstrates clean workflow and activity separation through a user onboarding process with multiple coordinated activities.
What's Provided
Workflow
workflow/UserOnboardingWorkflow.kt
- Empty workflow interface with TODO commentsworkflow/UserOnboardingWorkflowImpl.kt
- Empty workflow implementation with TODO comments
Activities
activity/UserValidationActivity.kt
+UserValidationActivityImpl.kt
- Email validationactivity/AccountCreationActivity.kt
+AccountCreationActivityImpl.kt
- Account creationactivity/NotificationActivity.kt
+NotificationActivityImpl.kt
- Welcome email
What You Need To Do
Follow the instructions in ../modules/lesson_6/workshop_6.md
to:
- Create all the data classes (OnboardingResult, ValidationResult, etc.)
- Implement each activity interface and implementation
- Create the workflow that orchestrates all activities
- Demonstrate clean separation of concerns
Goal
Create a complete user onboarding workflow that:
- Validates user email format and availability
- Creates a new user account
- Sends a welcome email
- Handles failures gracefully at each step
- Demonstrates proper workflow-activity architecture
Architecture
UserOnboardingWorkflow
├── UserValidationActivity (validate email)
├── AccountCreationActivity (create account)
└── NotificationActivity (send welcome email)
Each activity has a single responsibility and can be tested independently.