Engine Building and Status Updates
• 3 min read • By Rasmus RosTime flies when you’re deep in code. I’m a bit behind on updates, but progress has been solid. Since the last post, I’ve wrapped up kencode and pushed further into katom.
I haven’t really written up the bigger vision or architecture yet, so this is a first pass. The idea behind Eignex is simple. Take continuous optimization seriously in production systems. Instead of chasing local tweaks or brittle heuristics, the system continuously learns, adapts, and stays within strict constraints. The goal is a transparent, high-performance engine that can safely automate complex decisions inside live production systems.
Under the hood, the COMBO approach pulls together a few pieces that make real-time optimization possible. It keeps continuous streaming statistics to maintain a live, memory-efficient picture of the environment. That feeds into random forests or probabilistic gradient boosting (PGB) models to map out the objective space. To enforce strict system boundaries, it uses a local search-based SMT solver to guarantee constraints are always respected. The same solver also comes into play when iteratively drawing Thompson samples from the model.
Here’s a quick checkpoint on the core repos so far:
- site: Initial version is live. Built with eleventy and pico. It’s intentionally minimal, clean and functional. I’ll probably open-source it once I figure out a clean way to hide unpublished content.
- kpermute: Done. A reversible integer permutation library. Small piece, that was just a warmup but useful for generating initial guesses in combinatorial optimization without re-sampling.
- kencode: Basically finished. A binary serialization library that can also convert results to strings. Handy for passing state in URLs or anywhere you need a minimal payload.
- katom: Most of my recent focus. A suite of lock-free, concurrent statistical accumulators. It’s one of the backbone components of COMBO. Core streaming math includes DDSketch, HDR histograms, and rolling means and variances. Still plenty left to build.
And here’s what hasn’t started yet, but needs to happen to complete the Eignex vision:
- klsmt: A local search-based SMT solver that needs a better name. This is a large project, but I have a solid base from the original work.
- combo: A restructuring of the original combo using the new base components.
- eignex: Server and k8s, possibly helm, packaging of COMBO.
- eignex.io: Managed server version with a UI.
You might notice there are no AI agents or LLMs inside this architecture. There are plenty of great use cases for them, but not inside a deterministic, high-frequency continuous optimization engine. I work with LLMs enough in my day job, so keeping Eignex focused on different problems feels refreshing. One of the big motivations for going forward with the project though is AI agents and the huge need for optimization they have. I will do a longer write up on that.
On a personal note, I was away for a week snowboarding in Stöten with my kids. Disconnecting completely is always nice and coming back is always refreshing. We usually go skiing every year but to be honest I am getting more and more soar every year.