Skip to content

Instantly share code, notes, and snippets.

View zblanco's full-sized avatar

Zack zblanco

View GitHub Profile
@zblanco
zblanco / dagger_demos.livemd
Last active September 26, 2023 15:30
Dagger Demos 5/3/22

Dagger Demos

Summary

Dagger is a tool for modeling your workflows as data that can be composed together at runtime.

Dagger constructs can be integrated into a Dagger.Workflow and evaluated lazily in concurrent contexts.

@zblanco
zblanco / getting_lazy_with_dataflow_graphs_in_elixir.livemd
Last active April 3, 2024 01:34
Getting Lazy with Dataflow Graphs in Elixir

Getting Lazy with Dataflow Graphs in Elixir

Intro

What do Tensorflow, Apache Airflow, Rule Engines, and Excel have in common?

Under the hood they all use DAGs to model data-flow dependencies of the program. Using graphs to model programs is great because you can modify the program at runtime. Lets talk about doing this in Elixir for great good.

Salesforks

A theoretical Salesforce API wrapper to bring higher level abstractions and functional design techniques to Salesforce.

Code samples are in Elixir, but the techniques can be applied elsewhere.

The Operation Protocol

An Operation is a datastructure that represents a set of actions that can be applied against a given Salesforce Org. The Operation is protocol or contract which enforces that consuming datastructures can be converted into a valid Operation against a Salesforce API. An Operation could represent a batch or composite API request. Any valid Operation can be converted into a raw HTTP Request that can be executed against an HTTP Client.