Our specialists have provided support and feature enhancement of the large internal system using Java, PHP, and Golang. The system consisted of several monolith solutions and several services, which we moved to microservices.
Our client required many integrations as their business expanded to the European market. Therefore, our team has also developed multiple solutions for EU drivers:
- Integration with EU fuel card providers (like MTC) which customers can use for business trips;
- Making adjustments to the product for leasing companies;
- Support of different payment gateways like TransferWise which are used for business trips.
As the old system needed modernization, our client decided to migrate to Go, considering the convenience of working with the cloud. The N-iX team has been responsible for the communication and management of all charging stations connected to the cloud. The client’s solution is regionally distributed (USA, Canada, Australia, EU), allowing any station owner to monitor and manage their station state, configure it, collect statistics, set payment rules, and more.
N-iX has managed the following systems:
- PHP (backend) station communication gateway (PHP, RabbitMQ, MySQL), which is set at the front on direct station communication (sockets) and via OCPP server (translator for an industry-standard protocol).
- Message processor (Golang, REST (gin-gonic), RabbitMQ, MySQL, Prometheus, Docker, Jenkins), which handles the processing of translated station messages.
- Station-API (Golang, REST (gin-gonic), RabbitMQ, MySQL, Prometheus, Docker, Jenkins, AWS S3), which is a single RESTful interface that handles all work with business-layer device objects using an HTTP interface without direct connection to a DB. Services directly access the databases, which can be critical. We have added the firmware update feature to this service first, as it was required for expanding the business to the EU.
- Faults-service, which is aimed to be a single point of responsibility for early detection of any issues based on their telemetry or message flow characteristics. For instance, when the station temperature rises, technical support will arrive and fix it before it becomes inoperable.
N-iX also worked on the back-end for the new type of charging stations using PHP. It was designed to meet the global requirements for DC fast charging. It is a modular system that consists of one or several separate power blocks and the charging station itself. The modular architecture of the platform ensures that installation can scale as demand for power and ports increases.
All client stations work by OCPP (Open Charge Point Protocol). Such integrations allow gathering information about stations, predicting their status, and providing required information for drivers, administrators, and owners.