# Seeking Insights: Tickerplants and Complex Event Processing (CEP) in Julia

**URL:** https://discourse.julialang.org/t/seeking-insights-tickerplants-and-complex-event-processing-cep-in-julia/131980
**Category:** Finance and Economics
**Tags:** question, finance, inmemorydatasets, high-performance
**Created:** [August 30, 2025, 9:24pm UTC](https://discourse.julialang.org/t/seeking-insights-tickerplants-and-complex-event-processing-cep-in-julia/131980 "2025-08-30T21:24:44Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![rohanshiloh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rohanshiloh/32/218471_2.png) [@rohanshiloh](https://discourse.julialang.org/u/rohanshiloh)
#### Post date: [August 30, 2025, 9:24pm UTC](https://discourse.julialang.org/t/seeking-insights-tickerplants-and-complex-event-processing-cep-in-julia/131980/1 "2025-08-30T21:24:44Z")

</div>

The functional programming language and time-series vector database q/KDB has a low-latency architecture for efficiently processing extremely large volumes of real-time financial data directly from exchanges like the NYSE called a tickerplant.

A q/KDB tickerplant architecture stores 24 hours of realtime data in-memory (RDB) and writes it to disk (HDB) at EOD while using a CEP to build statistical/iterative models on the realtime streaming data and I was wondering if anyone has explored building a similar architecture in Julia possibly using JuliaDB as the on-disk store?

An interface between q/KDB and Julia currently exists: KdbConnect.jl

But I was wondering how performant Julia would be if we were to replicate this tickerplant architecture in pure Julia code with JuliaDB?

If anyone is interested in discussing or exploring this idea please do get in touch.

---

<div class="post-metadata">

### Author: ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)
#### Post date: [August 31, 2025, 6:43am UTC](https://discourse.julialang.org/t/seeking-insights-tickerplants-and-complex-event-processing-cep-in-julia/131980/2 "2025-08-31T06:43:35Z")

</div>

JuliaDB is abandoned/unmaintained. There are various alternatives but I’m not familiar enough with KDB to recommend alternatives.

There’s a #database channel on Slack you can join if you want to discuss the pros and cons of various db options, my feeling is that most people these days use DuckDB, maybe via `QuackIO.jl`

---

<div class="post-metadata">

### Author: ![j\_u](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j_u/32/219081_2.png) [@j\_u](https://discourse.julialang.org/u/j_u)
#### Post date: [September 22, 2025, 11:48am UTC](https://discourse.julialang.org/t/seeking-insights-tickerplants-and-complex-event-processing-cep-in-julia/131980/3 "2025-09-22T11:48:25Z")

</div>

> [@nilshg](#):
>
> my feeling is that most people these days use DuckDB, maybe via `QuackIO.jl`

May I ask, how are you finding `DuckDB`, particularly its in-memory functionality? I use `QuestDB`, which focuses on time series and open-source formats. It is not an in-memory database per se; as far as I know, it appends data to column files and memory-maps the ‘tail’ of these files into virtual memory pages.

---

<div class="post-metadata">

### Author: ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)
#### Post date: [September 22, 2025, 2:32pm UTC](https://discourse.julialang.org/t/seeking-insights-tickerplants-and-complex-event-processing-cep-in-julia/131980/5 "2025-09-22T14:32:44Z")

</div>

Sorry if I gave the wrong impression - I’m not actually a heavy database user myself, and if I do have to use them it’s usually client data bases so I don’t get to pick what I work with, so I have little experience with DuckDB.

---

<div class="post-metadata">

### Author: ![j\_u](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j_u/32/219081_2.png) [@j\_u](https://discourse.julialang.org/u/j_u)
#### Post date: [September 22, 2025, 9:54pm UTC](https://discourse.julialang.org/t/seeking-insights-tickerplants-and-complex-event-processing-cep-in-julia/131980/6 "2025-09-22T21:54:32Z")

</div>

I see. At first, I was looking into `Oracle Autonomous Database`, but at the time I thought it wasn’t fully supported in `Julia`. I also considered `KDB`, but if I remember right, the personal edition license didn’t allow running it on cloud servers. So in the end, I was deciding between `ClickHouse` and `QuestDB`. I’m really happy with my choice, though I do wish it supported `q/KDB` syntax. I believe, it would make a lot of things much easier. Lately, I’ve been reading a lot of positive things about `DuckDB`, and I noticed that its `Julia` support even includes User Defined Functions (UDFs). As far as I know, it also has an in-memory option. That’s what led me to ask my question.
