Skip to main content

Appendix A: n8n Node Type Reference

This appendix maps every n8n node type used in the Almafrica workflow diagrams to the concrete components in the codebase. Each node type is listed with the Almafrica classes that implement the corresponding pattern, organized by layer (Backend, Mobile, Web).


Table of Contents

  1. Webhook Trigger
  2. Schedule Trigger
  3. Manual Trigger
  4. HTTP Request
  5. Function
  6. IF (Conditional)
  7. Switch (Multi-Branch)
  8. Set (Transform)
  9. Merge (Parallel Coordination)
  10. Wait (Delay / Backoff)
  11. Loop (Iterative)
  12. Error Trigger
  13. Database Read/Write
  14. S3 (DigitalOcean Spaces)
  15. SignalR (Real-Time Hub)
  16. SMS (Africa's Talking)
  17. Push Notification (FCM)
  18. Code (Complex Inline Logic)
  19. NoOp (Skip / Passthrough)

1. Webhook Trigger

Represents an incoming HTTP request that starts a workflow. Maps to every API controller endpoint.

Backend -- API Controllers

All controllers live under backend/Almafrica.API/Controllers/.

ControllerPrimary Endpoints
AuthControllerLogin, register, refresh token, logout, my-permissions-by-role
AgentsControllerCRUD agents, assign farmers, performance
AnalyticsControllerDashboard stats, reports, aggregations
BaseConfigurationControllerMaster configuration CRUD
BulkOperationsControllerBulk import farmers/clients via Excel
CampaignsControllerCampaign CRUD, publish, close, runs
ClientsControllerClient CRUD, approval workflow, deactivation
CollectionPointsControllerCollection point CRUD
CropBatchesControllerBatch creation, assessment, allocation
CropsControllerCrop type CRUD
DeviceControllerDevice registration, heartbeat
FarmersControllerFarmer CRUD, approval workflow, profile
FarmerVisitsControllerField visit CRUD
IpWhitelistControllerIP whitelist management
LocationsControllerProvince/territory/village lookup
LoginHistoryControllerLogin history audit
MasterDataControllerMaster data sync endpoint (delta)
MobileSurveyControllerMobile survey form submission
MultipartUploadControllerChunked file upload (init, part, complete)
OrdersControllerOrder CRUD, status transitions, allocation
OtpControllerOTP generation and verification
PasswordPoliciesControllerPassword policy CRUD
PermissionsControllerPermission matrix CRUD
PermissionTemplatesControllerPermission template CRUD
ProductionsControllerProduction cycle CRUD
ProfileControllerUser profile, avatar upload
QualityAssessmentsControllerQuality assessment CRUD, checklist
RolesControllerRole CRUD
SessionsControllerSession list, terminate, activity
StockControllerStock query, adjustments
StockOutsControllerStock out recording
SurveyMasterDataControllerSurvey-specific master data
SurveyResponsesControllerSurvey response CRUD, export
SystemConfigurationsControllerSystem-wide settings
TransfersControllerTransfer CRUD, approve, dispatch, receive
TwoFactorController2FA enable/disable, verify
UploadControllerSimple file upload
UserGroupsControllerUser group CRUD
UserRolesControllerUser-role assignment
UsersManagementControllerUser CRUD, activate/deactivate
VersionControllerAPI version check
WarehouseStaffControllerWarehouse operator assignment

2. Schedule Trigger

Represents a timer or cron that fires a workflow on a recurring schedule.

Backend

ComponentSchedule PatternPurpose
ExpiryAlertBackgroundServicePeriodic (hosted service)Checks crop batches nearing best-before date, sends notifications

Mobile

ComponentSchedule PatternPurpose
OfflineQueueProcessorPeriodic timerDrains offline sync queue, retries failed uploads
BackgroundSyncServicePeriodic / on-connectivityTriggers full or delta sync when device regains network
SyncCoordinatorLogin + periodicOrchestrates ordered sync of all entity types
LoginSyncServiceOn loginRuns initial data pull immediately after authentication

3. Manual Trigger

Represents a user-initiated action that starts a workflow (button tap, form submit).

Mobile -- User-Initiated Actions

ComponentTriggerPurpose
FarmerDraftService"Save" / "Submit" buttonCreates or updates a farmer draft offline
ClientDraftService"Save" / "Submit" buttonCreates or updates a client draft offline
ClientFormDraftService"Save" buttonSaves client form draft state
ClientCropDemandDraftService"Save demand"Saves client crop demand draft
ProductionCycleDraftService"Save cycle"Saves production cycle draft
OrderService"Place order" / "Update status"Creates order or advances status
UploadService"Upload photo"Initiates photo upload from camera/gallery
ChunkedUploadServiceLarge file submitStarts chunked upload flow
SyncManager.fullSync()"Sync now" buttonTriggers full manual sync
AssessmentPhotoServiceCamera captureTakes and queues assessment photo
SurveyFormProvider"Submit survey"Submits survey response offline

4. HTTP Request

Represents an outbound HTTP call to an external API or the Almafrica backend.

Mobile -- Remote Datasources

All remote datasources live under mobile/mon_jardin/lib/data/datasources/remote/.

DatasourceTarget APIPurpose
MasterDataRemoteDatasourceGET /api/masterdata/*Pulls delta master data (provinces, crops, configs)
CropRemoteDatasourceGET /api/crops/*Fetches crop types and categories
CampaignRemoteDatasourceGET/POST /api/campaigns/*Fetches campaigns, submits survey responses
AssessmentRemoteDatasourceGET/POST /api/quality-assessments/*Fetches QA questions, submits assessments
DeviceRemoteDatasourcePOST /api/device/*Registers device, heartbeat
StockLossRemoteDatasourcePOST /api/stock/*Submits stock loss records
StockTransferRemoteDatasourcePOST /api/transfers/*Submits stock transfers
ClientMasterDataRemoteDatasourceGET /api/masterdata/client/*Pulls client-specific master data

Mobile -- Services Making HTTP Calls

ServiceCallsPurpose
ApiClientAll endpointsCentralized HTTP client with auth headers, retry
JwtAuthServicePOST /api/auth/loginLogin, refresh, per-role permission fetch
ProfileServiceGET/PUT /api/profileFetch and update user profile
FarmerServiceGET/POST /api/farmersSync farmers to/from backend
ClientServiceGET/POST /api/clientsSync clients to/from backend
OrderServiceGET/POST /api/ordersSync orders to/from backend
HarvestServicePOST /api/productions/*/harvestsSubmit harvests
ProductionCycleServiceGET/POST /api/productionsSync production cycles
CenterStockServiceGET /api/stock/*Fetch center stock data
WarehouseStaffServiceGET /api/warehouse-staffFetch warehouse staff assignments
ClientDocumentServicePOST /api/clients/*/documentsUpload client documents
ClientCropDemandServiceGET/POST /api/clients/*/demandsSync crop demands

Mobile -- Sync Services (HTTP Push/Pull)

Sync ServiceDirectionPurpose
FarmersSyncServicePullDelta-sync farmers from backend
ClientsSyncServicePullDelta-sync clients from backend
OrderSyncServicePush + PullSync orders bidirectionally
ProductionCycleSyncServicePush + PullSync production cycles
StockSyncServicePullPull stock data for warehouse view
StockLossSyncServicePushPush offline stock losses
StockTransferSyncServicePushPush offline stock transfers
CropDemandsSyncServicePush + PullSync client crop demands
SurveyResponseSyncServicePushPush offline survey responses
SurveyFileSyncServicePushPush queued survey file attachments
CampaignPullSyncServicePullPull campaign definitions
MasterDataSyncServicePullDelta-sync all master data tables
AssessmentQuestionsSyncServicePullSync QA checklist questions

5. Function

Represents a processing step that transforms data or applies business logic.

Backend -- Application & Infrastructure Services

ServiceLayerPurpose
AuthServiceInfrastructureLogin, JWT generation, permission resolution
FarmerServiceInfrastructureFarmer CRUD, search, filtering
FarmerValidationServiceInfrastructureFarmer field validation rules
FarmerBulkServiceInfrastructureBulk farmer import from Excel
FarmerCropOfferServiceInfrastructureFarmer crop offer CRUD
FarmerApprovalServiceInfrastructureFarmer approval/rejection workflow
FarmerAgentServiceInfrastructureAgent-farmer assignment logic
FarmerCollectionPointServiceInfrastructureFarmer-collection point assignment
FarmerVisitServiceInfrastructureField visit CRUD
ClientServiceInfrastructureClient CRUD, search, filtering
ClientApprovalServiceInfrastructureClient approval/rejection workflow
ClientCropDemandServiceInfrastructureClient crop demand CRUD
ClientBulkImportServiceInfrastructureBulk client import from Excel
OrderServiceInfrastructureOrder lifecycle (create, confirm, process, deliver, cancel)
CropBatchServiceInfrastructureBatch creation, assessment marking, allocation
CropServiceInfrastructureCrop type CRUD
StockServiceInfrastructureStock queries, aggregation
StockMovementRecorderInfrastructureRecords atomic stock movements
StockAdjustmentServiceInfrastructureManual stock adjustments
StockOutServiceInfrastructureStock out deductions
StockLossServiceInfrastructureStock loss recording and approval
TransferServiceInfrastructureTransfer workflow (approve, dispatch, complete, cancel)
QualityAssessmentServiceInfrastructureQA CRUD, scoring
QualityAssessmentQuestionServiceInfrastructureQA checklist question management
ProductionServiceInfrastructureProduction cycle CRUD
CampaignServiceInfrastructureCampaign CRUD, publish, close
MobileCampaignServiceInfrastructureMobile-optimized campaign data
QuestionnaireServiceInfrastructureQuestionnaire version management
SurveyResponseServiceInfrastructureSurvey response storage and validation
SurveyExportServiceInfrastructureSurvey data export
SurveyMasterDataServiceInfrastructureSurvey-specific master data
CollectionPointServiceInfrastructureCollection point CRUD
ConfigurationServiceInfrastructureSystem configuration management
MasterDataServiceInfrastructureMaster data delta sync logic
AnalyticsServiceInfrastructureDashboard analytics aggregation
MediaUploadServiceInfrastructureMedia file upload processing
MultipartUploadServiceInfrastructureChunked upload orchestration
OtpServiceInfrastructureOTP generation, sending, verification
TwoFactorServiceInfrastructureTOTP setup and verification
SessionManagementServiceInfrastructureSession create, list, terminate
LoginHistoryServiceInfrastructureLogin history tracking
IpWhitelistServiceInfrastructureIP whitelist enforcement
PasswordPolicyServiceInfrastructurePassword policy enforcement
PermissionTemplateServiceInfrastructurePermission template CRUD
RoleManagementServiceInfrastructureRole CRUD, role-permission assignment
RoleAuditServiceInfrastructureRole change audit trail
UserGroupServiceInfrastructureUser group CRUD
WarehouseStaffServiceInfrastructureWarehouse staff assignment
BulkUserOperationsServiceInfrastructureBulk user import/export
AgentServiceInfrastructureAgent CRUD, provisioning
AgentProfileProvisioningServiceInfrastructureAuto-creates Agent profile on user creation
CurrentUserServiceInfrastructureResolves current authenticated user context
ExcelServiceInfrastructureExcel file generation and parsing
ExcelExportServiceInfrastructureExport data to Excel format
ExcelTemplateServiceInfrastructureGenerate Excel import templates
ConfigurableExcelParserInfrastructureConfigurable Excel column mapping

Mobile -- Business Logic Services

ServicePurpose
ValidationServiceClient-side form validation
SyncConflictServiceDetects and resolves sync conflicts
EnhancedConflictServiceAdvanced conflict resolution strategies
ConflictResolverStrategy pattern for merge conflicts
PendingUpdatesServiceTracks pending offline updates
AgentStatusServiceResolves agent online/offline status
AgentContextHolds current agent identity context
CropManagementServiceLocal crop data management
DraftFileServiceManages file references for draft entities
ConnectivityServiceNetwork connectivity monitoring
UnifiedSyncStatusServiceAggregated sync status for all entity types
SyncAnalyticsServiceTracks sync performance metrics
SyncHistoryServiceLogs sync operations for debugging
ClientMasterDataResolverResolves master data IDs to display names

6. IF (Conditional)

Represents a binary decision (true/false routing).

Backend

PatternLocationCondition
Approval guardOrder.Confirm()Status != Pending -> reject
Assessment guardCropBatch.MarkAsAssessed()acceptedQuantity > initialQuantity -> error
Transfer state checkTransfer.CanBeApproved()Status == Pending && HasItems()
Transfer dispatch checkTransfer.CanBeDispatched()Status == Approved
Self-approval blockStockLossRecord.Approve()approverUserId == RecordedByUserId -> reject
Offline auth checkOfflineAuthServicehasValidOfflineToken -> allow / deny
Delta sync checkSyncMetadataServicehasLastSyncTime -> delta / full
Network connectivityConnectivityServiceisOnline -> remote call / local fallback

Mobile

PatternLocationCondition
Draft vs submitFarmerDraftServiceisDraft -> save locally / push to queue
Online checkSyncManagerisConnected -> sync / defer
Queue emptyOfflineQueueProcessorqueue.isEmpty -> idle / process next
Conflict detectionConflictResolverlocalVersion != remoteVersion -> merge / overwrite
Chunked upload resumeChunkedUploadServicehasPartialUpload -> resume / start fresh

7. Switch (Multi-Branch)

Represents a multi-way branch based on a value (enum, string).

Backend

PatternSwitch ValueBranches
Order status machineOrderStatusPending, Confirmed, InProgress, OutForDelivery, Delivered, Cancelled
Batch status machineBatchStatusPendingAssessment, Assessed, PartiallyAllocated, FullyAllocated
Transfer status machineTransferStatusPending, Approved, InTransit, Completed, Cancelled
StockMovement typeStockMovementTypeStockIn, Sale, Transfer, Disposal, Loss, Adjustment
Campaign statusCampaignStatusDraft, Published, Closed
Production statusProductionStatusPlanned, Active, Harvesting, Completed, Cancelled
Investigation statusInvestigationStatusOpen, InProgress, Resolved, Closed
Approval statusApprovalStatusPendingApproval, Approved, Rejected
QA question typeQuestionTypeNumeric, Boolean, SelectOptions, Date

Mobile

PatternSwitch ValueBranches
Sync entity typeSyncEntityTypefarmer, client, order, orderPayment, orderStatusTransition, production, harvest, stockLoss, stockTransfer, cropDemand, surveyResponse
Sync directionPull / PushDelta-pull from server / push local changes

8. Set (Transform)

Represents data transformation -- mapping one shape to another (DTO mapping, model conversion).

Backend

PatternSource -> TargetLocation
Entity -> DTOFarmer -> FarmerDtoService layer mapping
Entity -> DTOClient -> ClientDtoService layer mapping
Entity -> DTOOrder -> OrderDtoService layer mapping
Entity -> DTOCropBatch -> CropBatchDtoService layer mapping
Entity -> DTOQualityAssessment -> QADtoService layer mapping
Entity -> DTOCampaign -> CampaignDtoService layer mapping
Create command -> EntityCreateFarmerRequest -> Farmer.Create()Factory methods
Create command -> EntityCreateOrderRequest -> Order.Create()Factory methods
Excel row -> EntityExcel parsed row -> Farmer / ClientFarmerBulkService / ClientBulkImportService

Mobile

PatternSource -> TargetLocation
JSON -> ModelAPI JSON -> Dart modelRemote datasource fromJson()
Model -> SQLite rowDart model -> Map<String, dynamic>Local datasource toMap()
SQLite row -> ModelMap<String, dynamic> -> Dart modelLocal datasource fromMap()
Draft -> API payloadDraft model -> JSON request bodyDraft services
Sync response -> localAPI delta response -> local DB upsertSync services

9. Merge (Parallel Coordination)

Represents joining multiple parallel branches back together.

Backend

PatternParallel BranchesJoin Point
Order allocationMultiple batch allocationsOrderService -- aggregates allocated quantities
Bulk importParallel row processingFarmerBulkService -- collects results and errors
Analytics aggregationMultiple metric queriesAnalyticsService -- merges stats into dashboard DTO
Transfer completionPer-item received quantitiesTransferService -- joins items with discrepancy check

Mobile

PatternParallel BranchesJoin Point
Login syncMaster data + farmers + clients + ordersLoginSyncService -- all must complete
Full sync10+ entity type syncsSyncCoordinator -- sequential with progress
Offline queue drainParallel retries per entityOfflineQueueProcessor -- collects results
Chunked uploadParallel part uploadsChunkedUploadService -- all parts then complete

10. Wait (Delay / Backoff)

Represents intentional delays, retries with backoff, or scheduled waits.

Mobile

ComponentStrategyPurpose
ExponentialBackoffServiceExponential backoff with jitterRetry failed API calls
RetryExecutorServiceConfigurable retry policyExecute retryable operations
RetryPolicyMax retries, delay, backoff factorDefines retry parameters
OfflineQueueProcessorTimer intervalPeriodically checks and drains queue
BackgroundSyncServiceDebounce on connectivity changeWaits for stable connection before sync

Backend

ComponentStrategyPurpose
ExpiryAlertBackgroundServiceHosted service timerPeriodic batch expiry scan

11. Loop (Iterative)

Represents processing a collection of items one at a time or in batches.

Backend

PatternCollectionLoop Body
Bulk farmer importExcel rowsValidate + create each farmer
Bulk client importExcel rowsValidate + create each client
Order allocationAvailable batchesAllocate from each batch until fulfilled
Transfer items processingTransferItem listRecord stock movement per item
Stock loss items processingStockLossItem listReduce stock per batch
Survey exportSurvey responsesTransform each response to export row
Master data syncEntity typesPull each master data table

Mobile

PatternCollectionLoop Body
Offline queue processingPending queue itemsProcess each queued operation
Master data sync~26 master data tablesPull and upsert each table
Chunked upload partsFile chunksUpload each part with retry
Delta sync pagesPaginated API responseFetch and upsert each page
Entity syncEntity type listSync each entity type in order

12. Error Trigger

Represents exception handling, error recovery, and fault logging.

Backend

PatternLocationHandling
ValidationExceptionDomain entitiesThrown on invalid state transitions
InvalidOperationExceptionDomain methodsThrown on business rule violations
Global exception middlewareAPI pipelineCatches unhandled exceptions, returns 4xx/5xx
AuditLogServiceCross-cuttingLogs security-sensitive operations

Mobile

PatternLocationHandling
Sync error handlingAll sync servicesLogs error, marks entity for retry
SyncConflictServiceConflict detectionCreates sync_conflicts table entry
SyncAnalyticsServiceAll sync operationsRecords success/failure metrics
SyncNotificationServiceUser-facingShows error toast/snackbar
Queue retry trackingSyncQueueServiceIncrements retry count, marks permanent failure
EnhancedConflictServiceAdvanced conflictsApplies resolution strategies, logs outcome

13. Database Read/Write

Represents reading from or writing to a database.

Backend -- PostgreSQL (via Entity Framework Core)

Repository / DbContextTablesOperations
ApplicationDbContextAll domain entitiesFull CRUD via EF Core
ASP.NET IdentityAspNetUsers, AspNetRoles, AspNetUserRolesUser/role management
Domain entity tablesFarmers, Clients, Orders, OrderItems, CropBatches, StockMovements, Transfers, QualityAssessments, etc.Business data CRUD
Configuration tables~35 config entity tables with translationsMaster data storage

Mobile -- SQLite (via sqflite)

ComponentTablesOperations
DatabaseHelperAll local tablesSchema creation, migrations
Farmer local datasourcelocal_farmers, farmer_cropsOffline farmer storage
Client local datasourcelocal_clients, local_client_crop_demandsOffline client storage
Order local datasourcelocal_orders, local_order_itemsOffline order storage
Production local datasourcelocal_production_cycles, local_production_inputs, local_production_harvestsOffline production data
Campaign local datasourcecampaigns_cache, survey_responses, survey_master_data_cache, survey_file_queueOffline survey data
Stock local datasourcestock_losses, stock_transfers, center_stock_cache, stock_batch_cache, stock_aggregation_cache, stock_cache_metadataOffline stock data
Master data tablesprovinces, territories, villages, crop_categories, crop_types, seed_sources, fertilizer_types, pesticide_types, and ~20 moreCached reference data
Sync infrastructuresync_queue, sync_metadata, sync_conflicts, sync_analytics, sync_history, api_response_cacheSync state tracking
Chunked uploadschunked_uploads, chunked_upload_partsUpload resume state
Farmer visitslocal_farmer_visitsOffline visit data
Client documentsclient_documentsOffline document metadata

14. S3 (DigitalOcean Spaces)

Represents object storage operations (file upload, download, signed URLs).

Backend

ComponentOperationsPurpose
DigitalOceanSpacesServicePutObject, GetPresignedUrl, DeleteObjectFile storage for photos, documents, exports
MediaUploadServiceUpload with content-type detectionProfile photos, assessment photos, crop photos
MultipartUploadServiceInitiateMultipartUpload, UploadPart, CompleteMultipartUploadLarge file chunked upload
ExcelExportServicePutObjectExport Excel files to Spaces for download

Mobile

ComponentOperationsPurpose
UploadServiceHTTP PUT to presigned URLPhoto uploads
ChunkedUploadServiceMulti-part upload via APILarge file uploads with resume
AssessmentPhotoServiceQueue + uploadAssessment photo pipeline
DraftFileServiceLocal file reference managementTrack files pending upload
SurveyFileSyncServicePush queued filesUpload survey attachments

15. SignalR (Real-Time Hub)

Represents real-time bidirectional communication.

Backend

ComponentHub RoutePurpose
PermissionHub/hubs/permissionsReal-time permission revocation and updates

Mobile

ComponentConnectionPurpose
PermissionSyncServiceSignalR client to /hubs/permissionsListens for permission revocation events, refreshes per-role permissions

16. SMS (Africa's Talking)

Represents outbound SMS sending.

Backend

ComponentProviderPurpose
OtpServiceAfrica's Talking (configured in appsettings.json)Sends OTP codes via SMS for phone verification

17. Push Notification (FCM)

Represents mobile push notifications via Firebase Cloud Messaging.

Backend

ComponentStatusPurpose
PushNotificationServiceStub / partial implementationSends push notifications to registered mobile devices
ExpiryAlertBackgroundServiceUses notification serviceBatch expiry alerts

Mobile

ComponentPurpose
DeviceRemoteDatasourceRegisters FCM token with backend

18. Code (Complex Inline Logic)

Represents complex procedural logic that does not fit a simple function or IF node.

Backend

PatternLocationLogic
Order allocation algorithmOrderService / CropBatchServiceFIFO allocation across multiple batches
Batch number generationCropBatch.SetBatchNumber()Year + sequence number formatting
Quality scoringQualityAssessmentServiceMulti-criteria QA scoring per crop category
Transfer discrepancyTransferService.Complete()Expected vs received quantity comparison and investigation creation
Profile completenessFarmer.GetProfileCompletenessPercent()30-field weighted completeness calculation
Delta sync logicMasterDataServiceDetermines changed records since last sync timestamp
Bulk import parsingConfigurableExcelParserDynamic column mapping from Excel to entities

Mobile

PatternLocationLogic
Offline queue processingOfflineQueueProcessorPriority-based drain with retry and dead-letter
Conflict resolutionConflictResolverField-level merge with last-writer-wins fallback
Sync coordinationSyncCoordinatorOrdered entity sync with dependency resolution
Pull scope resolutionPullScopeResolverDetermines which data to pull based on user role
Exponential backoffExponentialBackoffServiceCalculates delay with jitter
Database migration chainDatabaseHelperSequential migration from v1 through v33+

19. NoOp (Skip / Passthrough)

Represents a no-operation path -- when a condition is false and no action is needed.

Backend

PatternLocationSkip Condition
Delta sync emptyMasterDataServiceNo changes since last sync -> return empty
Approval self-checkOrder/Transfer/Loss approvalAlready in target state -> no-op
Soft delete already deletedVarious entitiesIsDeleted == true -> skip
Duplicate queue itemSync processingAlready processed -> skip

Mobile

PatternLocationSkip Condition
Queue emptyOfflineQueueProcessorNo pending items -> idle
No connectivitySyncManagerOffline -> defer sync
No delta changesSync serviceslastSyncTime unchanged -> skip pull
Already syncedSyncMetadataServiceEntity up-to-date -> skip
Single dashboardActiveRoleManagerOnly 1 dashboard -> skip hub, go direct

Quick Reference Matrix

n8n NodeBackend CountMobile CountPrimary Pattern
Webhook Trigger42 controllers--REST API endpoints
Schedule Trigger14Background timers
Manual Trigger--11+User actions
HTTP Request--8 datasources, 25+ servicesAPI calls
Function50+ services15+ servicesBusiness logic
IF8+ patterns5+ patternsGuard clauses
Switch9 state machines2Enum routing
SetEntity <-> DTOJSON <-> Model <-> SQLiteData mapping
Merge4 patterns4 patternsParallel join
Wait15Retry/backoff
Loop7 patterns5 patternsCollection iteration
Error Trigger4 patterns6 patternsException handling
Database R/WPostgreSQL + EF CoreSQLite + sqfliteData persistence
S34 services5 servicesFile storage
SignalR1 hub1 clientReal-time events
SMS1 service--OTP delivery
Push Notification1 stub1 registrationMobile alerts
Code7 patterns6 patternsComplex logic
NoOp4 patterns5 patternsSkip paths