advanced 3 min answer

A media platform in the mould of Canva moves its self-managed Kafka cluster - 24 brokers, about 1800 partitions, 7-day retention, roughly 9 TB on disk - onto a managed streaming service, to free the two engineers who keep it running. What have they given up, and when does that bill arrive?

replatformmanaged serviceskafkaunit economicslock-in
Show the full answer Hide the answer

What is gained, quantified

Two engineers' time is the headline, but the real gain is narrower and more valuable: broker replacement, version upgrades, partition rebalancing and disk growth stop being projects. On a self-managed cluster those are the events that produce out-of-hours work, and they arrive on the vendor's schedule rather than the team's. A managed service also removes the single highest-risk operation on the list, the rolling major-version upgrade, which is the one a 24-broker cluster gets wrong once.

What is paid

The bill changes shape, not just size. A self-managed cluster is billed on instances and disk: two numbers, both under the team's control. Managed streaming is typically billed on four axes at once - provisioned capacity or partition count, bytes written, bytes stored over the retention window, and bytes read - and a fifth if reads cross availability zones. The consequence is that decisions which were free now cost money:

  • Partition count becomes a line item. 1800 partitions was a reasonable choice when partitions were free; under per-partition pricing, the 600 partitions created "for future scale" are a recurring charge.
  • Retention becomes a monthly storage bill. 7 days of 9 TB is a fixed disk purchase on self-managed hardware and a per-GB-month charge on managed. Raising retention to 30 days to help a replay use case quadruples a line somebody must defend.
  • Fan-out becomes egress. Every extra consumer group re-reads the whole topic. On your own brokers that is free capacity; on managed it is metered bytes read, so adding the eleventh consumer has a price the tenth did not reveal.

The second cost is operability you can no longer reach: broker-level configuration, custom authorisers, plugin-based interceptors, and the ability to diagnose by logging into a broker. When behaviour is wrong, the diagnosis path is a support ticket.

When the cost becomes visible

Not at migration. It arrives at the first event that multiplies one of the metered axes - a new analytics consumer, a retention increase for a replay, a per-tenant topic design that turns 1800 partitions into 9000. Teams discover the pricing model during an incident or a budget review, which is why the move should start with a spreadsheet of the four axes at today's volumes and at three times today's volumes.

How to keep the option to reverse

Keep the client-visible surface standard - the wire protocol, consumer group semantics, topic naming - and keep schema and offset management in your own control plane rather than a vendor feature. Then reversing is a re-point and a replay, not a rewrite.

When this is the wrong move

Where staying self-managed still wins: a cluster under roughly 100 partitions with a day of retention, where the whole operational burden is a few hours a month and the managed bill exceeds the engineer time it saves. It is also the wrong move when the workload depends on broker-level behaviour the managed service does not expose - a custom authoriser, a tiered-storage configuration, or rack awareness mapped to a non-standard topology. Confirm the feature list before the business case, not after, because the migration is easy and the reversal is not.