amaysim is a mobile service provider, with over 1.1 million subscribers, providing home internet, energy and devices to approximately 800,000 Australian homes. amaysim is a technology-driven company, offering DIY account management backed by online-first support.
It has to be easy. It has to be simple. That’s the basis of amaysim. Amazingly. Simple.
amaysim partnered with us to split up the current architecture: adding fault tolerance, configuring their new tech stack, and syncing data with core existing systems. With product line growth imminent, it was also the right time to help build out and train amaysim’s IT team, with Kilterset serving as advisor and educator by working as a blended unit with new hires.
Kilterset transitioned amaysim’s architecture from two components: a frontend user-facing Rails app (My amaysim) and a backend server (EC), into a decentralized set of interdependent systems. Using the OAuth framework, they built out customer data management (CDM), identity services (IDP), and single sign-on services (SSO) to facilitate logging in, easy purchasing processes for customers, and authenticated data flows between these existing systems (which still have valuable roles to play) and new.
Using a suitable OAuth strategy to enable inline login from any purchase funnels, so customers don’t have to jump out of purchasing flows. In other cases customers enter via the global amaysim login screen. New applications that have been built recently adopt the JAMStack pattern.
The IDP provides user login functionality and OAuth authentication for all amaysim applications. You can read much more about how we implemented their IDP on the amaysim engineering blog.
The CDM contains all user-specific, personal information unrelated to specific apps or systems within the amaysim suite of products and services. It also houses identifiers for amaysim customers in all downstream BSS applications for each vertical.
Event streams use AWS componentry leveraged with the Serverless framework, and are used in multiple places for communicating events across the various distributed systems.
Backend business systems (BSS) are a variety of core systems fronted by API gateways as an ‘anti-corruption layer’ and in most cases they also handle OAuth.
The CDM/IDP system was built on Rails and runs on amaysim’s containerised environment inside of AWS and can be deployed continuously with zero downtime.
The team architected CDM/IDP to be separated in the future (if desired) to make it safer and easier for teams to iterate on CDM without touching IDP. It’s also very easy to add a new business vertical into this model.
The architecture was built so that we could have separate core identity (IDP) and customer account (CDM) information, so that even if you didn’t have any amaysim services, you could still log in and update your information.
Also, the specifics of each service (Mobile, Energy, etc.) are still held in their respective backend services we just keep a reference to you in each system.
amaysim also uses AWS Kinesis and AWS Lambda functions for managing change events and is transitioning from purely data syncing to more of an event-driven architecture.
For example, if someone changes their email address in CDM, the information goes out onto a Kinesis stream, with multiple Lambdas retrieving and updating different downstream APIs in their required formats. Instead of waiting to make multiple synchronous calls to update APIs, the process is decoupled. With various strategies to ensure fault tolerance, updates will always be shared, with eventually consistency.
Anyone can come along and subscribe to that event stream and update their system as they need to. This architecture helps amaysim move faster as systems grow and allows more responsive applications for customers. In the old days, if you bottlenecked on one call, everything had to wait, all the way back to the front end.
Due to the new flexible, intelligent architecture, amaysim spun up whole new businesses very quickly adding broadband, energy (electricity and natural gas) and device sales to its portfolio going from one product line to four. They have also maintained a simple buying experience. For example, customers could purchase the new broadband product offering in just four steps!
Customer service improved tremendously as well. With new customer service tools that quickly deliver pre-filled customer forms, customer service reps could switch to simply verifying information rather than asking customers for their data; a much faster, less error prone and friendly way to provide service.
When transitioning to the new architecture, the team wisely chose to take a steady migration approach. They organically moved hundreds of thousands of users to the new system over a few months and avoided a big, stressful cutover.
It was so successful that the new systems were live in production a few months before the new broadband product line launched. “That was one of the best lessons,” says John.
“It demonstrated how good a low stress launch can be. Everything was there and working ahead of time and other teams could just plug into it.”
Previously, amaysim would do one release a month; now they do many zero-downtime releases a day, and the number is accelerating. This is enabled by having distributed systems that are easier to work on, with newer technology supporting them. It’s much easier to make changes and deploy and not think about it.
Read about amaysim’s Continuous Delivery trajectory in this article from Richard Dean, Director of Engineering
We’ve enabled marketing and cross-selling opportunities by building IDP and CDM and are working on new pieces to provide amaysim with a more comprehensive view of each customer. Going forward, it’s simple to see who has what and make specific offers to customers based on this.