Skip to main content

Sample Applications

Sample applications demonstrate NPipeline concepts through practical, runnable code. Each sample includes a README with setup instructions, code walkthrough, and key concepts.

All samples are in the /samples/ directory. Browse the code on GitHub or clone the repository to run them locally.

Getting Started

New to NPipeline? Start with these foundational samples:

  1. Sample_BasicPipeline — Source, transform, and sink nodes; pipeline definition and execution
  2. Sample_FileProcessing — File-based sources and sinks; streaming file I/O
  3. Sample_BasicErrorHandling — Try-catch patterns, retry logic, graceful degradation

All Samples

Fundamentals

SampleConcepts Demonstrated
Sample_BasicPipelineSource, transform, sink nodes; pipeline definition; DI integration
Sample_FileProcessingFile-based sources/sinks; streaming I/O; atomic file operations
Sample_BasicErrorHandlingTry-catch patterns; exponential backoff; fallback mechanisms
Sample_SimpleDataTransformationCSV parsing; validation; filtering; enrichment
Sample_ParallelProcessingParallel execution strategies; resource management; thread safety

Error Handling & Resilience

SampleConcepts Demonstrated
Sample_AdvancedErrorHandlingCircuit breakers; dead letter queues; Polly integration
Sample_FluentErrorHandlingFluent error handling API; error simulation utilities
Sample_RetryDelayRetry delay strategies; backoff patterns; jitter

Data Connectors

SampleConcepts Demonstrated
Sample_CsvConnectorCsvSourceNode/CsvSinkNode; attribute-based mapping; validation
Sample_JsonConnectorJsonSourceNode/JsonSinkNode; JSON array and NDJSON formats
Sample_ExcelConnectorExcel source/sink nodes; Excel-specific configuration
Sample_KafkaConnectorKafka integration; consumer/producer configuration
Sample_PostgresConnectorPostgreSQL source/sink; database operations
Sample_CosmosDbConnectorCosmos DB integration; NoSQL operations
Sample_SqsConnectorAWS SQS integration; message queue processing
Sample_SqlServerConnectorSQL Server integration; database connectivity

Data Enrichment & Lookups

SampleConcepts Demonstrated
Sample_LookupNodeLookupNode for data enrichment; async lookups; missing data handling
Sample_InMemoryLookupNodeIn-memory lookup patterns; reference data caching

Aggregation & Analytics

SampleConcepts Demonstrated
Sample_AggregateNodeAggregateNode; tumbling/sliding windows; real-time analytics
Sample_AdvancedAggregateNodeAdvancedAggregateNode; complex accumulators; financial risk calculations
Sample_StreamingAnalyticsTime-based windowing; watermarks; late data handling

Batching & Unbatching

SampleConcepts Demonstrated
Sample_BatchingNodeBatchingNode; size/time-based batching; bulk operations
Sample_UnbatchingNodeUnbatchingNode; batch-to-stream conversion; hybrid processing

Joins & Merging

SampleConcepts Demonstrated
Sample_KeyedJoinNodeKeyedJoinNode; inner/outer joins; multi-stream correlation
Sample_TimeWindowedJoinNodeTimeWindowedJoinNode; temporal correlation; watermark management
Sample_SelfJoinNodeSelf-join patterns; stream self-correlation
Sample_CustomMergeNodeCustomMergeNode; priority-based merging; conflict resolution

Branching & Distribution

SampleConcepts Demonstrated
Sample_BranchNodeBranchNode; parallel data distribution; multi-path processing
Sample_TapNodeTapNode; non-intrusive monitoring; audit logging; side-effect processing

Windowing & Event-Time Processing

SampleConcepts Demonstrated
Sample_WindowingStrategiesSession windows; dynamic windows; custom trigger windows
Sample_WatermarkHandlingEvent-time processing; watermark generation; late data handling

Performance & Optimization

SampleConcepts Demonstrated
Sample_PerformanceOptimizationValueTask optimization; sync fast paths; memory allocation reduction
Sample_ParallelExecution_SimplifiedSimplified parallel execution; degree of parallelism

Custom Implementation

SampleConcepts Demonstrated
Sample_CustomNodeImplementationCustom node development; lifecycle management; caching patterns
Sample_LambdaNodesLambda-based nodes; inline transforms; functional patterns

Complex Scenarios

SampleConcepts Demonstrated
Sample_ComplexDataTransformationsMulti-stream joins; external lookups; complex aggregations
Sample_IntentDrivenGroupingIntent-based grouping; semantic data organization
Sample_HttpPostHTTP sink nodes; REST API integration

Storage Providers

SampleConcepts Demonstrated
Sample_S3StorageProviderAWS S3 integration; cloud storage operations
Sample_AzureStorageProviderAzure Blob Storage integration
Sample_GcsStorageProviderGoogle Cloud Storage integration
Sample_SftpStorageProviderSFTP server integration; connection pooling; SSH authentication

Extensions

SampleConcepts Demonstrated
Sample_LineageExtensionData lineage tracking; sampling strategies; custom sinks
Sample_NodesExtensionPre-built processing nodes; cleansing; validation
Sample_ObservabilityExtensionMetrics collection; performance tracking; monitoring
Sample_CompositionHierarchical pipelines; sub-pipeline composition; context inheritance

Running Samples

All samples follow the same pattern:

cd samples/<SampleName>
dotnet restore
dotnet run

Each sample's README contains specific prerequisites, configuration options, and expected output.