Kill Bill
Abstract
Kill Bill is an open-source, programmable platform that enables you to build custom billing solutions. Think of it as building blocks to implement your own billing workflows.
Similar to the Unix philosophy of composability over monolithic design, Kill Bill provides APIs to create various pricing models, manage subscriptions, generate invoices, integrate with various payment gateways, etc. Whether you are selling access to a digital service for $10 a month or selling a multi-tier cell-phone data plan, Kill Bill provides the primitives to do it so you don’t have to start from scratch.
Author
Name: Chongyi Xu
Student number: 47552465
Functionality
Kill Bill can be used in various situations (B2B, B2C, offline, etc.) through various APIs (create various pricing models, manage subscriptions, generate invoices, integrate with various payment gateways, etc.)
Features
The features that the platform should have are:
- subscription billing feature:
- allow an online store to create recurring or usage-based subscriptions and manage upgrades and downgrades
- Kill Bill takes care of generating invoices, managing credits and triggering payments
- payment feature:
- Enables online stores to connect with many payment gateways and processors to charge customers.
- Subscription or one-time payment.
- Plugins
- Ability to easily connect to third party services
- Ability to modify behavior of the system to match custom business logic
Scope
The scope for the MVP of this platform will include the features:
- a standalone Java server that runs in your back-end:
- customers will never interact with it directly, but instead the website and potentially internal tools will trigger REST API calls (over HTTP) to create subscriptions, retrieve invoices, give credits, etc.
- database:
- manages all the state associated with the subscriptions, invoices, payments, etc
- back-office UI:
- access/modify consumer accounts data
- configure catalog information, billing rules, etc
- access for different types of reports
- run quick scenarios for development and testing purposes
Quality Attributes
Availability
- Availability is very important for Kill Bill platform as it needs to be accessible and functioning properly at all times. If the platform experiences downtime or malfunctions, it may result in billing delays and errors for users
Scalability
- Scalability is important for the platform because as the user base and their activity increases, the system needs to handle the increased traffic without slowing down. Systems need to be designed to automatically scale up and down based on user demand, ensuring that the system can handle large numbers of concurrent users, job requests, and computations.
- The frequency and amount of user payments may vary greatly depending on the time of day, such as Black Friday or other holidays.
Deployability
- Kill Bill is packaged as a self-contained WAR and is therefore executed within a web container
- Kill Bills can be deployed directly as a WAR within a container, or there are other deployment options such as Docker containers or AWS AMIs with one-click deployment capabilities
Evaluation
Scalability
- Use tools such as k6 to simulate various scenarios of user traffic and load on the system over a period of time to test the system’s ability to handle the increased load.
Extensibility
- Extensibility is an important attribute of the platform. Kill Bill Plugins can make API calls to Kill Bill. Evaluation of the extensibility attribute of the system will be done qualitatively, based on how well defined the interfaces.
Reliability
- To assess system reliability, basic system testing will be used to ensure the system is able to provide correct functionality in a low-stress environment
- Perform system testing under higher load to test whether requests are handled correctly and assess platform stability over time