Learn Ballerina
Ballerina is a comprehensive language that is easy to grasp for anyone with prior programming experience. Let's start learning Ballerina.
Get started with integration
Install Ballerina, set it all up, and take it for a spin.
Explore and try out a series of guided integration examples.
Enterprise integration patterns
Usage patterns for implementing robust integrations.
Explore and try out a series of guided integration tutorials.
List of data formats supported by Ballerina.
Supported network integration protocols
List of network integration protocols supported by Ballerina.
Integration tools
Generate a Ballerina service and client skeletons for an OpenAPI contract.
Generate GraphQL service skeleton for a given GraphQL schema and generate schema for a given Ballerina GraphQL service.
Generate a Ballerina service and listener skeletons for an AsyncAPI contract.
Develop a service documented in a Protocol Buffers by generating Ballerina service/client stub files and skeletons.
FHIR/HL7 profile to client and stub generation tool of Ballerina.
The set of command line tools provided to work with EDI files in Ballerina.
References
Explore and try out a series of guided Ballerina examples.
Refer to the Ballerina library (API) documentation.
Refer to the language, library, and platform specifications.
Features of the Ballerina Visual Studio Code extension.
Development tutorials
Build and run
CLI commands of the bal tool.
Maintain your Ballerina installation up to date with the latest patch and minor releases.
Details of the Read-Evaluate-Print Loop (REPL) for Ballerina.
Organize source code and dependencies
Basics of projects, packages, and modules.
References related to Ballerina packages.
Declare and manage dependencies and use the local repository.
Best practices to follow when formatting Ballerina code.
Provide custom formatting options to Ballerina formatter.
Test, debug, and document the code
Write automated tests using the built-in test framework.
Tooling support for troubleshooting Ballerina applications.
Generate documentation for the code.
Persistently store data
How to simplify data persistence with bal persist
.
How to model and define data structures for efficient data persistence.
How to use the tool for generating client code and types for the data model.
Generated client, types, and their usages for managing data persistence.
Data stores for managing data persistence.
Run in the cloud
Generate cloud deployment artifacts.
Expose Ballerina functions as serverless functions in the Azure Functions platform.
Write AWS Lambda-compatible packages.
Configurability
Configure a sample Ballerina service
Configure values at runtime through configurable module-level variables.
Provide values to configurable variables
Provide configurable values through configuration files, command-line arguments, and environment variables.
Advanced use cases of configuring values using configurable variables.
Observability
Basics of the observability functionalities that are provided for Ballerina programs.
How Ballerina supports observing logs of Ballerina programs.
How Ballerina supports observing metrics of Ballerina programs.
How Ballerina supports observing tracing of Ballerina programs.
Java interoperability
Call existing Java code from Ballerina.
The CLI tool that generates Ballerina bindings for Java classes.
List of language features that enable Ballerina developers to call foreign code written in other programming languages.
Build native binaries with GraalVM
The overview of GraalVM and the native executable.
Build the GraalVM executable in a container
Build and pack the GraalVM executable in a container.
Build the GraalVM executable locally
Build the GraalVM executable locally from Ballerina.
Reuse code with Ballerina Central
Publish packages to Ballerina Central
Publish your library package to Ballerina Central.
Perform operations with the Ballerina Central over an HTTP proxy.
Troubleshoot the runtime
Dump the status of currently running strands.
Ballerina Profiler (experimental)
Profile a Ballerina package and create a flame graph.
Resources
Featured scenarios
Write a RESTful API with Ballerina
Use Ballerina constructs to create RESTful APIs.
Write a gRPC service with Ballerina
Write and invoke a simple Ballerina gRPC service.
Manage data persistence with bal persist
Use bal persist
to simplify data persistence management.
Write a GraphQL API with Ballerina
Write and invoke a simple Ballerina GraphQL service.
Work with data using queries in Ballerina
Use query expressions to work with data.
Build a data service in Ballerina
Use Ballerina constructs to work with data services.
Deploy Ballerina on Kubernetes
Write, build, and deploy a Ballerina service on Kubernetes.
Create your first connector with Ballerina
Generate custom connectors using the Ballerina OpenAPI tool.
Learn the language
Get started with basics that are common to all C-Family programming languages.
Provide and consume services using Ballerina.
Work with data using Ballerina.
How concurrency and transactions are handled in Ballerina.
Advanced general-purpose language features
Advanced features, which are additional options for the language.