How the Ghana Ports and Harbours Authority replaced phone calls and spreadsheets with a single managed event mesh, and what your terminal can learn from it.
A case study in six movements. It opens with the port as it was and closes with the architecture that now runs beneath it. Designed to be read in 12 minutes or skimmed in three.
By 2023, the Ghana Ports and Harbours Authority had outgrown the way it kept track of itself. The terminal operating system was modern. The customs gateway was modern. The billing engine was modern. None of them spoke to each other in real time. Between them sat a thicket of phone calls, paper declarations, WhatsApp messages, and spreadsheets being passed across desks.
The Authority's brief was not to replace what worked. The TOS stayed. ICUMS stayed. The billing engine stayed. What was needed was a layer above: a managed event mesh that would let every system publish what it knew, and every other system subscribe to it, in a language they could all agree on.
It also had to reach further than the terminal walls. The clearing agents, the shipping lines, the freight forwarders, the gate clerks, the equipment operators: every actor who touched the port needed a surface to work on. Not one app. Six modules, each for a different audience, all running on the same mesh.
That layer is Carten. This document is the story of the first deployment.
The Ghana Ports and Harbours Authority is the gateway to West Africa's second-largest economy. Tema, on the Greenwich meridian, handles the bulk of the country's container traffic and serves as a transit hub for landlocked neighbours: Burkina Faso, Mali, and Niger.
Takoradi, on the western coast, anchors Ghana's bulk and energy exports. Between them, the Authority oversees vessels arriving from every continent, customs clearance for every cargo class, and a trade community of hundreds of clearing and shipping agent firms.
Carten was deployed first at the headquarters operations, with rollout across both ports as modules came online. The reference implementation now sits across ESB, Pulse, Port, and Admin.
A working port is a system of systems. There is the Authority itself, which sets the rules. There is the terminal operator, who runs the cranes. There are the shipping lines, who arrive with cargo. There are the clearing and shipping agents, who move that cargo through customs. There are the gate clerks, the yard supervisors, the equipment operators, and the customs officers. And somewhere in the background, there is the rest of the government.
Each of these actors used to need its own tool. Often, none of those tools talked to each other. Carten's answer was not a new tool for any of them. It was a single mesh in the middle, and a different module for each audience above it, each tuned to the device, the literacy, the workflow, and the time pressure of the people using it.
A port authority executive opens Pulse on a laptop and sees vessel turnaround dashboards. A clearing agent opens Port on her phone and lodges a declaration in the queue at the gate. A gate clerk checks the mesh on a rugged Android and sees an updated berth assignment before the shift change is done.
All of them are looking at the same port. None of them are looking at the same screen.
Carten ships as containers. Modules deploy independently. At GPHA, the mesh went live in week three. The first operational module, Pulse, followed in week six. The trade community came on in waves over the next two quarters.
Mapped GPHA's TOS, ICUMS gateway, billing engine, and equipment. Identified which modules deliver value first.
Carten ESB and Admin go in. The event mesh comes alive. Adapters to the TOS and ICUMS are wired up.
Pulse goes live in pilot. Port operations gets visibility. Senior staff stop asking the questions phone calls used to answer.
Port comes online. Operators trained. Worker and AI modules deploy when ready. Purple Engineering runs managed services as long as needed.
The mesh published its first event at 03:14 on a Wednesday in October. VESSEL.ARRIVAL from the TOS adapter. By the end of the day, the mesh had carried twelve thousand more.
By week four, the operations team had stopped using their morning WhatsApp group to coordinate berth assignments. The information was already in Pulse.
Zero new hires. Existing IT staff trained on the schema registry and adapter framework within two weeks. No system replacements: the TOS, ICUMS, and billing engine are all still the same products that were running before.
Operational hours for clearing agents fell 41% on the most common declaration types within the first quarter.
A managed event mesh sits at the centre of the deployment. Modules and external systems publish and consume against a canonical topic tree, so adding a new system never breaks an existing one, and every event has a place to live.
Each module is independently licensed and deployable. They share one identity layer, one event mesh, and one design language, so data captured by one module surfaces in the others without integration work.
The integration backbone. Connects the TOS, customs gateway, billing engine, and IoT equipment through a managed event mesh, so every system speaks one canonical language.
Real-time KPI dashboards, SLA alerts, and a stakeholder data API, so shipping lines, government bodies, and agents always know what's happening at the terminal.
Mobile-first platform for the trade community: clearing agents, shipping agents, and freight forwarders. Declaration lodging, document management, customs status, QR gate passes.
Mobile workforce operations for terminal staff: gate clerks, yard supervisors, and equipment operators. Shift management, incident reporting, equipment tracking, digital task assignment.
The unified back-office. Single IAM for every module, system health monitoring, audit logs, agent ID card generation, and operational notice broadcasting.
Platform-embedded AI. Natural language queries on Pulse data. Document intelligence for manifests. Predictive models for delays and congestion. Runs inside the terminal's own deployment namespace.
A brand only matters where it touches the operator. Below are four perspectives from inside the GPHA deployment, collected during quarterly reviews.
"Before, every Monday started with phone calls. Now the dashboard tells me before I ask. The questions have gotten better — and they take less time."
"I lodge declarations in the queue, not back at the office. By the time I reach the gate the status is green or it's not — and I haven't wasted the morning."
"The systems we use every day haven't changed — but now everything we do shows up across the board. No more chasing people down for updates."
"What I appreciate is that the TOS hasn't moved. We didn't have to rip anything out. Carten sits above the systems we already trust and makes them talk."
Every deployment is different. The mesh and the back-office are mandatory. The other modules deploy in whatever order delivers value first. A typical engagement looks like this.
45 minutes. No slideware. Real events flowing across the mesh. You see what your port could look like, running on data instead of phone calls.
Purple Engineering maps your current systems (TOS, customs, billing, equipment) and identifies which modules deliver value first. Documented and priced before the week ends.
Carten ESB and Admin deploy as containers into your environment (self-hosted or managed by us). Adapters to your TOS and customs gateway are wired up. The first event publishes.
Usually Pulse, so the operations team can see what they couldn't see before. Sometimes Port, if the trade community is the bottleneck. Always the one that pays back fastest.
Worker on the floor. Port for the agent firms. AI when the data and the use case are ready. Purple Engineering runs managed services for as long as you need us to.
We'll walk you through the mesh, the modules, and the live GPHA reference deployment. 45 minutes. No slideware, just a real port system running.