Kill Bill 0.18.x Release

Kill Bill 0.18.x Release

We are very eager to announce the new Kill Bill 0.18.x release train (current version at the time of this blog is 0.18.2). Our last announcement for a ‘major’ release (see current Kill Bill versioning scheme) was almost a year ago¬†. Since this release somehow coincides with the end of the year, it feels natural to not only review what it contains but also to provide an overview of what happened through 2016. Obviously, a lot has happened in a year and this blog post will just touch the surface of some of the main things we (and the community) achieved. Main New Features: At this point the platform is already pretty features-rich, and each new feature brings further complexity and also has the potential to destabilize the system. So, we have to balance fulfilling the desire of some of our (most loyal) users with the stability and risk associated with such new features. Some of the main features we added are: Hierarchical Account Shopping Card Apis Blocking State Abstraction Migration Apis (along with migration guide) Subscription Bill cycle day (BCD) change Subsystem/Feature Rework: With more adoption comes more bug reports, use cases we never thought of, … and so a large part of the work we did throughout the year was about hardening and enhancing the various sub-modules. Catalog: A lot of effort was invested in the catalog to address some of the shortcomings (e.g. ability to have plans of different shapes on the same pricelist), provide apis to dynamically add Plans on the current version of a catalog, harden validation, and greatly improve performance for large catalogs....
Kill Bill 0.16.0 Released!

Kill Bill 0.16.0 Released!

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: Performance Improvement 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 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 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...
Kill Bill 0.14.0 Released!

Kill Bill 0.14.0 Released!

We are excited to announce our new release Kill Bill 0.14.0! The release is mostly targeted to cover all the current use cases identified in our talk , that is: Subscription As A Service Global Payment System Subscription As A Service On the Subscription As A Service side, the following areas have been enhanced: Multi-tenancy. In particular, the ability to upload per tenant config (catalog, invoice templates, invoice translations), and per plugin config (so, for instance the same stripe payment plugin could be used across multiple tenants with different set of credentials, …). Catalog Price Override. Subscriptions APIs have been enhanced to now support overriding static catalog prices, by automatically adding new catalog entries with those new prices. The price override occurs at the phase level, and allows to override both fixed and recurring prices in one or multiple phases of the plan associated with the new subscription. Ability to dynamically add new roles and admin users. We added APIs that allow to add new roles and admin users (without having to restart Kill Bill instances). This is mostly useful for deployments that rely on static shiro.ini configuration files, as opposed to LDAP (which we also provide). New plugins: Tax plugin (Avalara) Email notification plugin Global Payment System The bulk of the work has been geared towards stability and performance of our JRuby stack. Most of our payment plugins are ruby plugins, and it is therefore critical to make sure the system can handle many requests in parallel. Pierre wrote a blog about the performance work which offers¬†more details. In addition to this core platform work, we also developed...