The top ten articles about Ballerina

Anjana Fernando
4 min readSep 5, 2018

Ballerina is a cloud native programming language that gives special attention to integration. The increasing complexity of software systems means that more and more solutions are highly disaggregated, and, thus, requires efficient integration between these sub-systems. This approach creates more unique challenges, which relates to services, resilient communication, security, transactions, and observability.

Let’s look at the must-read Ballerina articles that will help you to understand the language’s core concepts and start developing.

[1] Ballerina Microservices Programming Language: Introducing the Latest Release and “Ballerina Central”

Ballerina makes it easy to create resilient services that integrate and orchestrate across distributed endpoints. The language includes package management, dependency management, versioning, and a globally hosted registry for connectors and annotations at Ballerina Central. This InfoQ tutorial discusses Ballerina’s design principles that focus on baking integration concepts into a language, including a network-aware type system, sequence diagrammatic syntax, being “DevOps ready”, and environment awareness.

Link: https://www.infoq.com/articles/ballerina-microservices-language-part-1

[2] Ballerina Tutorial: A Programming Language for Integration

The language uses compile time abstractions for distributed system primitives. This enables type safety for data transformations and the compiler to generate artifacts like API gateways for deployment to Docker and Kubernetes. It has keywords to represent integration concepts including networked endpoints, services, streaming SQL along with primitives for tables, JSON, and XML. These syntax elements allow IDEs and other tools to generate sequence diagrams from any Ballerina code. This InfoQ tutorial explains what it’s like to author integration flows in Ballerina that are deployable as scalable microservices on Kubernetes.

Link: https://www.infoq.com/articles/ballerina-integration-tutorial-part-2

[3] Building an API Gateway with the Ballerina Programming Language

Ballerina contains constructs typically required in the integration domain such as services, endpoints, circuit breakers and a lot more. This article discusses how to build an API Gateway in Ballerina for WSO2 API Manager. The article also discusses Ballerina’s language constructs and concepts that make it work as an API Gateway.

Link: https://www.infoq.com/articles/ballerina-api-gateway

[4] Packaging Applications for Docker and Kubernetes: Metaparticle vs Pulumi vs Ballerina

This article discusses how the uptake of microservice architecture is further driving the software industry towards cloud native application development and deployment. Docker and Kubernetes are the key elements of modern cloud native deployment automations, and the current best practice for deployment is to create reproducible packages for applications with containers. However, this typically involves the manual writing (and maintenance) of YAML deployment descriptors. Metaparticle, Ballerina, and Pulumi are three open source projects that introduce their own approach to solving the problem of packaging applications for deployment using Docker and Kubernetes. The article provides several working examples, and documents the steps necessary to deploy a simple “HelloWorld” application using each of the frameworks.

Link: https://www.infoq.com/articles/metaparticle-pulumi-ballerina

[5] Ballerina: A Programming Language for Cloud Native Computing

This article provides an overview of six features in Ballerina that make it a programming language for cloud native computing.

  1. Built-in container support
  2. Serverless-friendly
  3. Observability
  4. Works with or without a service mesh
  5. Easy stream processing with streaming SQL
  6. Baked-in security

Link: https://thenewstack.io/ballerina-a-programming-language-for-cloud-native-computing/

[6] Ballerina: An API-First Programming Language

Ballerina is a compiled, transactional, statically and strongly typed programming language with textual and graphical syntaxes, and it is an attempt to build a modern industrial-grade programming language. It aims to make microservices and integration-heavy programming simpler by baking integration concepts into the language. This article provides a brief overview of key concepts and features.

Link: https://thenewstack.io/ballerina-an-api-first-programming-language/

[7] Ballerina programming language: The missing link in enterprise integration

One could argue that first-class integration capabilities are required in a modern programming language. Given the rapid growth of network-accessible APIs, having effective techniques is critical in consuming and creating compositions based on these resources. Ballerina contains native constructs for such concepts as services, concurrency, secure coding, and transactions, among others.

Link: https://jaxenter.com/ballerina-language-enterprise-integration-148781.html

[8] The rise of Ballerina: An important piece of the microservices architecture puzzle

Jaxenter interviews Paul Fremantle, WSO2 co-founder and CTO, about the language’s features, the advantages of using Ballerina with a serverless platform, early access development support, what’s next for this young language, and more.

Link: https://jaxenter.com/ballerina-language-interview-fremantle-147231.html

[9] Data Integration With Ballerina

Data integration is a complex problem. Data flows to and from many directions via different sources such as databases, the cloud, legacy systems, ERPs, and on-premise applications. How you choose to use, integrate with, and analyze cloud-native data may be different than what you’re used to. This article discusses how Ballerina can be used to solve this problem.

Link: https://dzone.com/articles/data-integration-with-ballerina

[10] Generate Kubernetes YAML Right From Your App Code

This article discusses how, with a few annotations, Ballerina code can be deployed into Docker and Kubernetes.

Link: https://dzone.com/articles/yaml-less-kubernetes

--

--

Anjana Fernando

Software Engineer @ Google; ex: WSO2 | 🇱🇰 🇺🇸 | — @lafernando