the native web
Framework
wolkenkit
wolkenkit empowers you to build and run scalable distributed web and cloud services that process and store streams of domain events.
framework

wolkenkit – build distributed web and cloud APIs

wolkenkit is a CQRS and event-sourcing framework based on Node.js. It empowers you to build and run scalable distributed web and cloud services that process and store streams of domain events. It supports JavaScript and TypeScript, and is available under an open-source license. Additionally, there are also enterprise add-ons. Since it works especially well in conjunction with domain-driven design (DDD), wolkenkit is the perfect backend framework to shape, build, and run web and cloud APIs.

Distributed

Graph with spread out nodes
wolkenkit applications are distributed by default and designed to scale. You can run wolkenkit as a single-process runtime on a single machine, or as a set of distinct services spread across your network.

Time-machine

Clock with backwards arrow
wolkenkit stores domain events from your business over time. This allows to get the current state and to replay any state of the past, run analytics, create reports, and gain insights. In addition, you get an audit log for free.

Real-world problems

Globe
Software is not an end in itself: It gets written to solve real-world problems. By providing the technical foundation for scalable web and cloud services, wolkenkit allows to take care of what's really important – the domain.

Features

wolkenkit provides the technical foundation for interdisciplinary teams to build web and cloud applications and APIs. It is designed and developed in the open, hence it comes without any vendor lock-in. wolkenkit integrates with your existing infrastructure and databases. Thus it is the ideal platform for running mission-critical business processes. The following section outlines six outstanding features of wolkenkit. If you need any guidance or support, we provide consulting, workshops, and development services.

JavaScript and TypeScript

JS and TS in a speech bubble
wolkenkit natively supports JavaScript and TypeScript as well. This empowers developers to work with their favorite and well-known language. Due to the fact that wolkenkit itself is written in TypeScript, its API is fully typed.

Grows with your needs

Growing plant in hand
wolkenkit provides different runtimes that have been carefully designed for a variety of use cases, from a simple single-process to services distributed across the network. Thus wolkenkit is able to grow with your needs.

SQL, NoSQL, and beyond

Stack of servers
wolkenkit works well with a variety of databases out of the box, including PostgreSQL, MariaDB, MySQL, MSSQL Server, MongoDB, and an in-memory data store. In addition it allows to use custom databases.

Vanilla HTTP and GraphQL

Electricity plug
wolkenkit contains a vanilla HTTP and a GraphQL endpoint that can be used to send commands, execute queries, and subscribe to domain events. To have both means to be able to use wolkenkit with all kinds of clients.

Docker and Kubernetes

Container cargo ship
wolkenkit works well even with only Node.js installed. In addition it also provides ready-made yet configurable manifests for Docker and Kubernetes to allow simple deployments into your existing infrastructure.

Open-source and enterprise

Certificate
wolkenkit is available as open-source using the AGPL 3.0 license. In addition, there are also enterprise add-ons that allow to build and run closed-source applications, and that come with a variety of optional support plans.
Want to evaluate wolkenkit?Let's get in touch!

Licensing

wolkenkit is available using two different license models, as open-source or using a proprietary license. The core of wolkenkit uses the AGPL 3.0 license and demands that you distribute the sources of your application as open-source, too. Additional building blocks addressing the enterprise use a proprietary license without this requirement, which makes them ideal for closed-source applications where you don't want to share your sources with your audience. If you have any questions on licensing wolkenkit, let's get in touch!

wolkenkit
Core framework
For open-source projects
Build software based on the AGPL 3.0 license
For open-hardware projects
Tinker hardware based on the AGPL 3.0 license
For developers
Develop, build, and run on your local machine
Get the code and make contributions
Meet the community and the core developers
Ask questions and provide answers
Free
forever!
Install now
+ Closed-source
For closed-source projects
Keep your source code private
For production
Run on your web and cloud servers
Let's get in touch
+ Redistribution
For IoT projects
Bundle wolkenkit with your devices
For white-label solutions
Resell wolkenkit to your customers
Let's get in touch
+ Quick start workshop
Guided setup
Get up and running quickly
First steps
Set up and run your first application
Let's get in touch
+ Advanced support
Fast lane issues
Get a priority initial response time
Direct help
Contact the wolkenkit core team
Let's get in touch
+ Managed hosting
Friction-free deployments
Run your application in the cloud
Made for you
Get a plan for your individual needs
Let's get in touch

Getting started

As wolkenkit applications are based on CQRS, their building blocks are commands, domain events, and queries. Commands are used to send tasks to the application, domain events notify about results in real-time, and queries return the current state for views. These elements all refer to the domain and need to be defined by the developer. Anything else, including setting up a secure API, managing event-sourcing, and scaling, is provided by wolkenkit out of the box. If you have any questions, let's get in touch!

Sophie thinking

Initializing an application

The simplest way to get started is to initialize one of the provided sample applications. For that you only need to have the current LTS version of Node.js installed on your system. Then run the following command:
$ npx wolkenkit@4.0.0-ctp.6 init
Sophie reading

Installing its dependencies

To be able to run the application, first install wolkenkit and its dependencies to the local context of your application. For that, change into the application directory and run the following command:
$ cd <app-name> && npm install
Sophie cheering

Running the application

wolkenkit provides various runtimes, but the most convenient way for development is to use the single-process runtime with a purely in-memory storage. To start this runtime use the following command:
$ npx wolkenkit dev
Have a project in mind?Let's get in touch!

Contributing

To build a vibrant open-source community we have published wolkenkit using the AGPL 3.0 license. To also create a sustainable business that reliably backs the open-source model we additionally offer wolkenkit using a proprietary license. For us, open-source and business are not contradictory, but rather form a respectful partnership to create better software. We value your dedication to improve wolkenkit. Every contribution is important, from code to documentation, from asking questions to providing answers.

Contributing code

Code editor
The most obvious way to add value to wolkenkit is by contributing code. This covers fixing bugs, extending existing features, and even implementing new features. For inspiration see the list of all open issues on GitHub.

Reporting issues

Check list with pen
Is there a feature that doesn't work as expected, whose functionality may be extended, or is there anything that you are missing completely? If you found a bug or have an idea for a new feature, report an issue for it.

Sponsoring development

Piggy bank
If you are a company that would like to improve the speed of development or are in the need of specific features, you have the possibility for sponsoring development. If you are interested in this, let's get in touch!
Need help on your way?Let's get in touch!