Features
We've packed Unison Cloud full of goodies.
Web service hosting
Deploy HTTP and WebSocket services in seconds with a single function call. No building containers, managing VMs, or other cloud infra management. Focus entirely on the logic of your services.
Learn morehelloWorld.logic : HttpRequest ->{Exception, Log} HttpResponse
helloWorld.logic = Route.run do
name = route GET Parser.text
info "request for greeting" [("name", name)]
ok.text ("๐ hello " ++ name ++ "\n")
helloWorld.deploy : '{IO, Exception} ()
helloWorld.deploy = Cloud.main do
name = ServiceName.create "hello-world"
serviceHash = deployHttp !Environment.default helloWorld.logic
ServiceName.assign name serviceHash
Service-to-service calls
Make inter-service calls with a single line of code, without serialization or networking boilerplate. Get the benefits of a microservice architecture without the headache.
Learn moreImmutable deployments
All service deployments get a unique content-addressed hash. Named services have a stable URL and can point to any service version. Easily promote a deployment to production or rollback to an earlier version.
Learn moreTyped durable storage
Getting data into and and out of durable storage is usually a tedious layer of boilerplate in your application. With Unison Cloud, any value may saved in our transactional storage layer. Your access to storage is statically typed and checked by Unison's typechecker.
Learn morecounter : Database -> Table Text Nat -> HttpRequest -> HttpResponse
counter db userCounts = Route.run do
(user, amount) = route.pair POST (s "increment" / text / nat)
count = State.modifyGet db userCounts user 0 (x -> x + amount)
ok.text (Nat.toText count ++ "\\n")
counter.deploy : '{IO, Exception} ()
counter.deploy = Cloud.main do
db = Database.create "counter-service-db"
env = Environment.create "counter-env"
Database.assign db env
h = deployHttp env (counter db (Table "counts"))
ServiceName.assign (ServiceName.create "counter") h
Log collection and viewing
Logs produced by your services or batch jobs are consolidated and easily viewable in the Unison Cloud UI. You can also stream these logs to your local console.
Learn moreBatch compute jobs
Run your ETLs, data aggregations, or other batch jobs on elastic cloud resources.
Learn moreSecrets and config management
Upload secrets and config to our securely encrypted vault; access them easily from your services.
Learn moreEasy local testing
For easy testing, just swap a single function call and your service is running locally instead of in the cloud.
Learn more