GitHub user hanishi edited a discussion: Pekko Ad Network(promovolve)

I’m currently working on a publisher-centric, context-based ad network built on 
Apache Pekko Cluster.

The project is still in active development, but it is intended to be fully open 
source. I plan to disclose architectural details and share the repository once 
it is ready.

Promovolve is meant to show what Akka/Pekko can actually build when it’s used 
as a runtime rather than just a convenient toolkit.

A lot of systems that moved away after the license change could do so because 
actors were mainly used as a threading or batch-execution model. That usage was 
never “wrong”because Akka was explicitly positioned as a toolkit, and partial 
adoption was always valid. But that part is also the easiest to replace.

What tends to be overlooked is the value of the full cluster model. When you 
commit to this you can build an entire production system with one coherent set 
of ideas, without stitching together a large collection of unrelated frameworks.

Promovolve is intentionally built that way. It’s a complete ad-serving runtime 
that relies primarily on cluster semantics. The point isn’t that other 
approaches are wrong, but that the cluster model already gives you all of that, 
if you let it.

Used this way, Akka/Pekko isn’t just a convenience layer, but most simple 
examples fail to show this, because they stop at actors as a concurrency tool 
and never reach the cluster semantics where that architectural value actually 
appears.
I felt that going beyond examples and building something fully production-ready 
would attract practitioners, and that real usage would naturally bring in 
stakeholders later, thereby increasing Pekko's visibility.

While ad tech can be seen as niche, it’s where I’ve spent most of my career, 
and it’s a domain with a clear path to real revenue.


## Adaptive Budget Pacing with PI Control

Demonstrating ad budget pacing that works across all traffic levels

https://www.youtube.com/watch?v=wBhUKKP5LC8

```
No views  Jan 13, 2026
Learned:  ▁▁▁▁▁▁▂▂▃▅▄▅▆█▆▅▄▃▃▃▁▅▃[▁]
Actual:   ▁▁▁▁▁▁▂▂▃▄▅▃█▅▆▆▄▂▂▂▃▆▁[▁]

  Matches (16/24):
h0-8: ▁▁▁▁▁▁▂▂▃ - perfect early hours
h14: ▆
h16: ▄
h21: ▆ (evening spike preserved!)
h23: ▁

  Close (within 1 bar):
h9, h10, h15, h17-19
```

For those unfamiliar with ad pacing: imagine an advertiser has a daily budget 
of $100 to spend on ads, and traffic to a site is not constant. If the system 
simply buys every available impression as fast as possible, the entire budget 
could be spent in the first hour of the day, leaving the advertiser invisible 
for the remaining 23 hours. Pacing is the control logic that decides when not 
to buy ; deliberately skipping some opportunities early so that spend is spread 
smoothly across time. This becomes harder when traffic is bursty, feedback is 
delayed, and prices vary, which is why pacing is fundamentally a control 
problem, not a simple rule.


GitHub link: https://github.com/apache/pekko/discussions/2608

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: 
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to