Replies: 9 comments
-
Can we write a baby Spark clone in under 100 lines of Unison?Show a Spark-like library for creating and transforming distributed datasets, demonstrating a general technique for turning any functional data structure into a distributed version. Current status: published |
Beta Was this translation helpful? Give feedback.
-
Could we implement a CDN or IPFS in under 100 lines of Unison?Work up to a locality-aware, demand-replicated, highly scalable distributed hash table. This is a powerful building block, suitable for implementing a CDN, an IPFS clone, or acting as the source of truth for a large system. How simply can we build one of these in Unison? |
Beta Was this translation helpful? Give feedback.
-
Your favorite ETL job, parallel CSV parsing, or S3 bucket downloadingFor instance, perhaps some ad hoc analysis of a few terabytes of log files, or some ETL job as part of data prep before starting a machine learning task. Or perhaps something like "load these CSV files, munge them a bit, then put stuff into the database". |
Beta Was this translation helpful? Give feedback.
-
Resillient scheduled jobs and workflowsA lot of "boring" business workflows have computations that execute over a period of days or weeks, with human intervention at various stages. Think: a user signup flow (which requires first sending an email, then they confirm it, then they provide credit card info, then...) or a recurring billing task ("wake up once a month and bill the user, unless the account has been cancelled"). People often write these workflows using spaghetti code spread across several services, with state manually persisted and unpersisted by different stages of the workflow. The idea here is that you instead write these workflows using straight line code using an There are frameworks for this sort of thing (such as temporal). How simple and general can we make this in Unison? |
Beta Was this translation helpful? Give feedback.
-
Suffix arrays, search engines, and bioinformaticsShow an implementation of distributed suffix arrays, useful for building a full-text search engine and for various bioinformatics applications. |
Beta Was this translation helpful? Give feedback.
-
Distributed monte carlo simulationThis is a pretty straightforward application. Programs that use randomness can be run with a distributed handler that runs multiple samples in parallel on lots of nodes. Nothing needs to be set up in advance--dependencies will be deployed on the fly. Likely useful for finance, derivatives pricing, or for certain kinds of machine learning. |
Beta Was this translation helpful? Give feedback.
-
Distributed ledgerImplement a blockchain or distributed ledger as a Unison library. |
Beta Was this translation helpful? Give feedback.
-
Distributed queues and topics |
Beta Was this translation helpful? Give feedback.
-
Distributed matrix multiplication where neither matrix fits on a single node. |
Beta Was this translation helpful? Give feedback.
-
We've planning a series of posts introducing Unison's distributed programming support.
Good news: the API is quite general and capable of handling lots of different use cases!
Bad news: there's too many choices and we're not sure which ones to work up first. This ticket is a place for you to vote informally on which use cases you're most interested in, or to propose other ideas. To vote just use 👍 on any of the ideas below.
You can use comments on this thread for discussion, or if that gets unwieldy, I'd suggest using the #distributed channel of the Slack.
Also, feel free to DM @pchiusano on the Unison Slack or one of the other maintainers to chat about any of these. You can also contact us here. We are very interested in hearing from you!
Beta Was this translation helpful? Give feedback.
All reactions