In this series: Part 1: Practical Railway-Oriented Pipelines in Ruby Part 2: User input, errors and metadata Part 3: Extending pipelines Part 4: Middleware Part 5: Testing pipelines Testing pipelines. Testing any complex workflow can be challenging. Composable pipelines can make it easier to use a “divide and conquer” approach to testing. 1. Unit test each step in isolation. Steps may or may not be complex, but their simple #call(Result) Result interface makes them easy to test.| Posts on Ismael Celis
In this series: Part 1: Practical Railway-Oriented Pipelines in Ruby Part 2: User input, errors and metadata Part 3: Extending pipelines Part 4: Middleware Part 5: Testing pipelines In the previous article in this series I showed how to extend the basic pipeline with domain-specific steps and helpers. Here I’ll show how to add middleware to the pipeline, to add tracing, logging, caching, and other cross-cutting concerns. Middleware Middleware is a bit of code that wraps around each step in ...| Posts on Ismael Celis
In this series: Part 1: Practical Railway-Oriented Pipelines in Ruby Part 2: User input, errors and metadata Part 3: Extending pipelines Part 4: Middleware Part 5: Testing pipelines In the previous article in this series I showed how to pass extra metadata from one step to the next, including user input, errors and context data. This article expands on the previous ones by showing how to extend the pipeline with domain-specific steps and helpers.| Posts on Ismael Celis
A simplified approach to building composable data pipelines in Ruby, with examples and use cases.| ismaelcelis.com