| |
Cloud infrastructure management overhead:Managing cloud infrastructure is complicated and not all teams have the expertise or desire to do it themselves. Furthermore, managing cloud infrastructure isn't done with a nicely typed program; instead, it's lots of ad hoc tooling, shell scripts and YAML files. | Unison code deploys itself.Our cloud computing platform, Unison Cloud,makes deploying long-running services, serverless functions, and batch jobs to the cloud as easy as calling a regular function. Infrastructure management is written as a typed Unison program. |
Inter-service communication boilerplate:Writing encoders and decoders at service boundaries is part of the tedious overhead we've accepted for microservice architectures. | Native service callsin Unison eliminate the need for intermediaries.Service calls are typechecked function calls. |
Database communication boilerplate:Translating your typed domain models to something the database understands is tedious and loses type information. | Unison supports native, typed, transactional storage in the Cloud.That means no writing sql adapters, no special query languages, just store and access Unison data. |
Testing and profiling distributed systems:Testing the integration of an entire distributed system often involves setup and teardown of resources or copious data mocking. | Unison's effect system separates your business logic from its implementation.Our model for distributed computationcan run against test backends that focus on observability, tracing or performance. |
Unnecessary merge conflicts:Dealing with semantically unimportant merge conflicts is at best a papercut and at worst a big waste of development time. | Semantic version control.Unison's version control is language-aware. There are no conflicts due to code formatting or whitespace, order of imports, order of definitions in a file, or any other differences that aren't semantically meaningful. |
Dependency management nightmares:Finding compatible sets of library versions can be difficult or impossible due to dependency conflicts. Dependency upgrade tasks often snowball in scope to include far more work than originally intended. | Unison eliminates name conflicts.Many dependency conflicts are caused by different versions of a library "competing" for the same names. Unison references defintions by hash, not by name, and multiple versions of the same library can be used within a project. |
Look, programming's no fun sometimes:When programming tasks are needlessly complicated, tedious, orjust plain weird,it can be demoralizing. Can't things be better? | Redesign what's needed to make things awesome.We've built Unison with love and care onnew foundationsto make the developer experience better. |