Cloud-native programming inherently involves working with remote endpoints: microservices, serverless, APIs, WebSockets, software-as-a-service (SaaS) apps, and more. Ballerina[1] is a cloud-native, general purpose, concurrent, transactional, and statically- and strongly-typed programming language with both textual and graphical syntaxes.

Its specialization is integration; it brings fundamental concepts, ideas, and tools of distributed system integration into the language and offers a type-safe, concurrent environment to implement such applications. These include distributed transactions, resiliency, concurrency, security, and container-management platforms.

Ballerina has been inspired by Java, Go, C, C++, Rust, Haskell, Kotlin, Dart, TypeScript, JavaScript, Swift, and other languages. It is an open source project, distributed under the Apache 2.0[2] license, and you can find its source code in the project's GitHub[3] repository.

Textual and graphical syntaxes

Ballerina's programming language semantics are created to be natural for developers to express the structure and the logic of a program. To describe complex interactions between multiple parties, we typically use a sequence diagram. This approach enables visualization of endpoints and actions, such as asynchronous and synchronous message passing and parallel executions, in an intuitive manner.

Built-in resiliency

Resilient and type-safe integration is built into the language. When you try to invoke an external endpoint that might be unreliable, you can circumvent that interaction with resilience capabilities, such as circuit breakers, failover, and retry, for your specific protocol.

Circuit breaker

Adding a circuit breaker is as trivial as passing a few additional parameters to your client endpoint code.


endpoint http:Client backendClientEP {
  url: "http://localhost:8080",
  // Circuit breaker configuration options
  circuitBreaker: {
      // Failure calculation window.
      rollingWindow: {
          // Time period in

Read more from our friends at Opensource.com