iconik Billing System Architecture
The iconik Billing system takes a different approach to the main iconik application, and it is designed to be separate—to standalone—while handling all regions of iconik. This gives us several advantages:
- Data is stored separately to the main iconik application.
- We use strongly consistent transactional databases.
- The system is not available to the outside world or via public IP addresses.
- It only runs periodically and can take advantage of serverless infrastructure.
The billing system integrates with and uses private APIs from iconik for importing the usage of customers periodically and calculates usage and stores that information as a ledger. It integrates with our billing system vendor, Stripe which performs the actual calculations, sends invoices and handles the payment process. We use a unique ID generated for each customer to push usage so that the correct bills and invoices can be generated which means no company-specific data such as credit card details, addresses, contact information or personal information is stored in the billing system.
- Google Cloud Functions
- Google Cloud CloudSQL database