Scaling Smarter: How We Rebuilt Optimisation in Efficient Brewing

At Efficient Brewing, our goal has always been simple: help breweries make better production decisions with less effort. But as we gain more and more customers, so does the complexity of the problems they want to solve. What used to be a scheduling task for a few weeks quickly turned into planning horizons spanning many months.

That shift pushed us to rethink one of the core of our platform: optimisation.

Previously, optimisation ran as part of a synchronous request. In simple terms, a user would ask the system to generate a production schedule, and everything would happen in one go while they waited. This worked well for smaller problems, but as the size and complexity increased, it became clear that this approach wouldn’t scale. Longer computations meant slower responses, and in some cases, hitting technical limits.

We made a foundational change

We moved optimisation out of the request path and into a production-ready asynchronous pipeline. Instead of trying to do everything at once, requests are now queued and processed by dedicated workers using a Pub/Sub model. This allows us to handle significantly larger workloads in a more reliable and controlled way.

But scalability alone wasn’t enough—we also needed robustness. To make the system production-ready, we introduced idempotency (so repeated requests don’t cause inconsistencies) and added guardrails to ensure that jobs behave predictably, even under failure conditions. Behind the scenes, we reinforced everything with clear contracts between components, comprehensive tests, and structured rollout checklists. These aren’t flashy features, but they’re what make the system dependable day in and day out.

What does this mean for our users?

Most importantly, it unlocks the ability to solve much larger scheduling problems. Planning production across many months is now not just possible, but practical. Breweries can model long-term strategies, anticipate constraints earlier, and make more informed decisions without being limited by system performance.

This is more than just a performance upgrade—it’s a step toward a more interactive future.

By decoupling optimisation from the request-response cycle, we’ve opened the door to richer communication between the system and the user. Instead of waiting for a single final answer, we can start to share intermediate results, insights, and partial solutions as they become available. This creates opportunities for a more collaborative optimisation experience, where users can guide and refine outcomes in real time.

In many ways, this change lays the groundwork for what comes next. We’re not just making optimisation faster or bigger—we’re making it more flexible, more transparent, and ultimately more useful.

Efficient Brewing has always been about helping breweries operate at their best. With this new architecture in place, we’re excited to support our users as they take on bigger challenges and plan further ahead than ever before.

Leave a Comment

Your email address will not be published. Required fields are marked *