We are excited to announce our new release Kill Bill 0.16.x (and we just released 0.16.1 to make it even better)!
This is the result of 6 months of hard work and a lot has happened… so let’s review:
This has been a very long effort that started already in release 0.14.x and that we have continued forward. We have already posted some notes about the work and some results. Obviously performance is a never ending task because as the system evolves, it becomes necessary to verify there is no performance regression, but we now have a stable and performant system and all the tools to continue the work (tests, perf framework and baseline to compare numbers).
Full Payment Stack
One of the main focus of that release was around the payment subsystem. Kill Bill now offers a full payment subsystem (unrelated to the subscription/invoicing engine), with standalone payment apis (auth, capture, refund, …). The payment subsystem has been implemented on top of state machines that enforce correct transitions for payment transactions and offers 2 flexible payment plugin apis to extend the core payment system:
- The payment plugin api allows you to extend the core payment system to interact with third party payment gateways or processors. We already have 16 such payment plugins (for Stripe, CyberSource, Adyen, PayPal, Braintree, …)
- The payment control plugin api allows you to intercept payment operations in real time to customize the system. There are many use cases for this api (integration with fraud systems, payment routing, retry strategies, disbursement, currency conversion, …)
We believe we can support any payment flows and integrate with any kind of system (CC, PayPal, Bitcoin, HPP, mobile, …).
Ease of Use
Kill Bill is composed of several pieces and being able to configure and deploy the system was a non trivial task.
For the newcomers, we created a demo that is available online and that should give a sense of what the system is about. We also modified our deployment tool to provide a full running system (KB and KAUI, our admin UI, inside a web container); that way, it becomes easy to play with the system.
For more advanced users, deploying Kill Bill often means configuring the system (catalog, overdue config, templates and internationalization bundles, specific properties), setting up user/roles/permissions, and also deploying some plugins (custom plugins or open-source plugins provided by the community):
- On the plugin side, we now offer plugin management apis to easily install, uninstall, start, restart, stop any plugin. No more low level understanding of how various plugins should be deployed. Also, note that KAUI has been extended to provide this level of plugin management so those operations can also be done through the UI
- On the configuration side, we already had apis to upload configuration files, but those operations are now available from KAUI as well
- On the user/role management side, we also provide apis to configure the system
We also provide docker images for Kill Bill and Kaui for those interested in deploying using containers.
We have revisited the way we compute metrics inside Kill Bill. Those metrics are available through JMX or through api calls (json) and provide the following types of information:
- HTTP request: Each operation is instrumented to keep track of the latency, request rate, number of calls
- Plugin calls: Each operation going to a plugin is also instrumented in the same way (latency, request rate, number of calls)
- Low level system metrics (bus events, …)
In addition to providing those metrics, we also have worked to integrate Kill Bill with InfluxDB and Grafana. This provides a full monitoring solution for production deployment.
We have completely reworked our UI to first improve on the flow and design, and then enhance its capability to not only support standard billing admin operations (e.g. adjust an invoice), but also operational admin features (tenant management, configuration management, plugin management, …). We have also enhanced Kaui to support plugin specific UI components. Because of Kaui’s architecture based on Rails mountable engines, we now offer the possibility to develop plugin specific UI components that are available in the same UI and complement the core functionalities from Kaui. We already released such components for the analytics plugin and the Avalara plugin.
We started some partnerships at different levels:
- We have joined forces with Aequilibrium, to provide consulting services around Kill Bill.
- We started some partnerships with companies providing software that can be integrated with Kill Bill (and for which we provide a certified plugin), and we are pleased to announce our latest partnership with Avalara.
We have also closed 51 bugs, we have enhanced the system to support new plugin apis (such as a catalog plugin api), added a new golang client library, added support for PostgreSQL (still experimental) and have significantly reworked our docs.
Finally, we are getting more and more contributions from the community. A big thank you to all of you helping us build the best open-source subscription billing and payment platform.
If you have any feedback, please reach out!