Skip to main content

Introduction

Welcome to Besom, a Pulumi SDK for Scala 3!

Pulumi is an infrastructure-as-code platform that allows you to define any cloud resources your project needs using a programming language of your choice. Pulumi is a registered trademark of Pulumi Corporation.

Besom is the implementation of language SDK for Pulumi allowing you to use Scala for all your infrastructure needs. Both Pulumi and Besom are free and open source projects.

info

Besom is currently available for evaluation to early adopters in the beta stage of the project. We are aligning our implementation with the rest of Pulumi ecosystem, finding and solving issues and working on general usability, ergonomics and feature completeness.

Mission

Besom's mission is to introduce rich type safety to the domain of cloud and platform engineering. We want to allow our users to benefit from Scala's compiler support to catch problems and mistakes before the execution of programs that manage the live infrastructure. We believe that typeful functional programming is the best approach for mission-critical software like infrastructure-as-code solutions.

Besom follows the general model of Pulumi SDKs and operates using the same basic constructs and primitives. It is therefore strongly advised to get acquainted with Pulumi's basics section as a fast way to get up to speed with the general concepts.

Uniqueness

Besom is unique in the fact that it's meant to support all Scala's technological ecosystems transparently:

To be able to do that, the API has to support pure, lazy, functional evaluation semantics as they are the lowest common denominator. This means that there are some small differences in comparison to other Pulumi SDKs that are idiomatic to programs written in functional style, to name two:

  • Stack along with its exports are the return value of the main function of the program,
  • smaller chunks of the program have to be composed into the main flow of the program to be executed.

Next steps

  • Getting started section helps you get your hands dirty and figure out the details as you go
  • Basics offers an executive summary of Pulumi's key concepts and how they are implemented in Besom
  • Tutorial is a crash course in cloud engineering using Scala, Pulumi and AWS
  • Architecture Overview helps you learn more about the details and differences between Besom and other Pulumi SDKs