Hey Adnan,
Thanks for your interest in the idea for GSoC. That sounds like some
great first steps into getting started with the system.
Indeed, understanding the packaging and startup for the system will be
important for this. I think it will even have to go farther though.
The idea here is to fully hoist the system into WASM. Therefore things
like supervisord, and so on, won't really apply.
Fortunately AsterixDB is almost entirely pure Java. I was thinking
this might make the task a lot easier than the equivalent for other
DBs, see for example postgres-wasm or PGLite.
We just need to use a JVM which targets WASM as an architecture, like
TeaVM: https://teavm.org/ .
Probably the first entrypoint will just be a REPL that lets you input
SQL++ directly, perhaps with some minimal commands to check various
things.

I'll answer your questions inline:
> Is the current asterixccnc-based startup path the most relevant
entry point to think from for browser packaging, or are there other
runtime modules that would be more appropriate?

I honestly think AsterixHyracksIntegrationUtil might be the most
appropriate. The idea here is to condense everything down, as much as
possible. There will definitely only be one process, and perhaps only
one thread.

> Are there any starter contributions I can make that would best
demonstrate fit for this project before the proposal deadline?

Since you've been looking at the packaging- if you have noticed any
bugs there, reporting them here or fixing them would be a great help.
This module is pre-release, so I am sure there are at least a few
lurking there. To my knowledge only you, Suryaa and I have played
around with this packaging.
You could also just try using TeaVM or some other WASM runtime to run
AsterixHyracksIntegrationUtil, and report on the list about what you
find. The 3 major unknowns for me are:
- What does TeaVM do with threading?
- WASM doesn't describe a platform (WASI is an effort to add this, but
it isn't used by TeaVM to my knowledge). Therefore what happens when
Java packages which use native code, like java.io.* , are used?
- Same thing for java.net.* . What happens when an operator tries to
open a socket?
I would say in general this idea is kind of a "crazy" one. I have no
idea if it actually is possible or not without major changes to the
system or the JVM runtime- but it seems like it should be, and if it
isn't, it would be great to know why and what we would have to change
to make it so. In other words, I think at the very least, it would be
fun!

- Ian


On Wed, Mar 25, 2026 at 3:57 PM Adan Ali <[email protected]> wrote:
>
> Hi Ian,
>
> I'm preparing a GSoC 2026 proposal for In-browser packaging of
> AsterixDB and wanted to introduce myself briefly.
>
> I am a high school graduate with a strong Java backend background,
> having hands-on experience building concurrent systems, HTTP-based
> services, and full Jakarta EE applications (TaskEE). I’ve also worked
> on multithreaded processing systems (Divipix).
>
> Over the last couple of days, I’ve focused on getting up to speed with
> AsterixDB itself:
>
> - I have built AsterixDB locally and successfully run the sample
> cluster and Admin Console.
> - I Studied the SQL++ primer and have started tracing the runtime flow.
> - I explored the packaging layer (asterix-podman) and compared it with
> the older Docker-based setup
>
> One thing that stood out to me is the shift from the older
> multi-process container setup (CC + multiple NCs via supervisord) to
> the newer simplified startup path using asterixccnc. That seems
> especially relevant for the in-browser packaging direction, since a
> browser environment will likely require a much more minimal,
> single-node execution model rather than full cluster orchestration.
>
> Now, I am focusing on understanding the HTTP API and tracing the execution 
> path.
>
> I had a few focused questions where your guidance would help me align early:
>
> - Is the current asterixccnc-based startup path the most relevant
> entry point to think from for browser packaging, or are there other
> runtime modules that would be more appropriate?
> - Are there any starter contributions I can make that would best
> demonstrate fit for this project before the proposal deadline?
>
> I want to make sure my proposal is both relevant and targeted. Your
> feedback or suggestions on my current approach would be really
> helpful.
>
> Thank you for your time.
>
> Best Regards,
> Adan Ali.

Reply via email to