Programming model
Kalix simplifies API development by allowing developers to focus on their API’s data objects without worrying about how the data is stored.
Your responsibility as a developer is to implement the necessary Components that encapsulate the state and business logic of the system you are building.
Kalix Components
There are four main types of Components:
Component | Description |
---|---|
Entities |
Entities are domain objects that handle commands and events, manage concurrency and persist state. They are uniquely identified by a key. The developer decides which type of Entity to use, depending on the use case. Learn more about different entity use cases here. |
Views |
Views enable the developer to retrieve and transform data from multiple entities using a SQL-like query language. |
Actions |
Actions are stateless functions used for logic that doesn’t require data persistence. Actions can be triggered by changes in other Components, a gRPC service call or an HTTP service call. |
Workflows |
Workflows enable the developer to implement long-running, multi-step business processes while focusing exclusively on domain and business logic. Technical concerns such as delivery guarantees, scaling, error handling and recovery are managed by Kalix. |
Kalix Services
A Service contains the code you write using various abstractions called Components. Services are invoked through messages received via HTTP, gRPC or subscriptions to topics. Clients, such as user interfaces or other Services, can be built using any framework.
In traditional architectures, developers need to handle database connections, maintenance, and scalability. However, in Kalix, each Service has a Proxy that handles all persistence concerns automatically. This removes the need for developers to manage databases, and the proxy handles data access, transactions, scaling, caching and failover.
When a client makes a request to a Kalix Service, the request is received by the Service’s API endpoints, forwarded to the Kalix proxy, and then routed to the appropriate Component for processing.
By leveraging Kalix’s capabilities, you can focus on implementing your Service’s functionality while Kalix takes care of data persistence and retrieval, resulting in a more efficient and manageable development process.
Next steps
Start building your own Kalix Service using one of the SDKs:
Not sure which SDK to start with? We suggest the Java SDK which is the only one supporting a code-first development approach at present.