# aDSA 1.1.0 — a ZeroMQ-backed PCS for the Distributed Systems Annex (PolyORB replacement)

**URL:** <https://forum.ada-lang.io/t/adsa-1-1-0-a-zeromq-backed-pcs-for-the-distributed-systems-annex-polyorb-replacement/4533>\
**Category:** Releases\
**Created:** [June 29, 2026, 11:42pm UTC](https://forum.ada-lang.io/t/adsa-1-1-0-a-zeromq-backed-pcs-for-the-distributed-systems-annex-polyorb-replacement/4533 "2026-06-29T23:42:52Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![charlie5](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/charlie5/32/626_2.png) [@charlie5](https://forum.ada-lang.io/u/charlie5)\
**Post date:** [June 29, 2026, 11:42pm UTC](https://forum.ada-lang.io/t/adsa-1-1-0-a-zeromq-backed-pcs-for-the-distributed-systems-annex-polyorb-replacement/4533/1 "2026-06-29T23:42:52Z")

</div>

Hi all,

With PolyORB deprecated and unmaintained, Annex E (distributed Ada) has been left effectively without a runtime. I’ve been building a replacement — **aDSA** — and 1.1.0 is now out.

It’s a Partition Communication Subsystem backed by [ZeroMQ](https://zeromq.org/). The compiler side is untouched: it implements GNAT’s `GARLIC_DSA` personality, so the stubs `exp_dist` already generates — `Remote_Call_Interface`, RACW, RAS, `Shared_Passive` — call into it unchanged. You write ordinary Ada with the usual pragmas; aDSA supplies the runtime (`System.RPC`, `System.Partition_Interface`, `System.Shared_Storage`) plus **`pcs_gnatdist`** , a `gnatdist` replacement that builds and wires up the partitions from a `.cfg` file.

**Where it’s at**

Feature-complete against Annex E and validated against the unmodified PolyORB `examples/dsa` configurations, on both build paths (`gnatmake` and `gprbuild`/`-P`). The `-P` path now builds a real multi-project GtkAda / Ada-2022 application (the charlie5 _arcana_ game) end to end, and I’ve run it cross-host over a real two-machine network.

Other bits:

- RPC/APC, RACW (incl. asynchronous), RAS, `Shared_Passive` (file backend + a cross-host store server)
- concurrent serve pool, per-peer socket caching
- optional XDR wire, zlib compression, CurveZMQ encryption + per-partition mutual authentication
- distributed quiescence/termination, restart recovery, the RM E.3 version check
- Arch packaging that rebuilds the runtime automatically on every `gcc-ada` upgrade

**Links**

- Repo, examples and a [User’s Guide](https://codeberg.org/charlie5/aDSA/src/branch/main/docs/users-guide.md): [charlie5/aDSA: ZeroMQ-backed PCS for Ada's Distributed Systems Annex. - Codeberg.org](https://codeberg.org/charlie5/aDSA)
- GPLv3

**A note on how it was built:** aDSA was developed with substantial AI assistance (Anthropic’s Claude / Claude Code). I set the direction and the decisions, and I reviewed, tested and verified everything — but much of the implementation, debugging and documentation was AI-generated, and the commit history reflects that (the `Co-Authored-By` trailers). I’m flagging it for transparency, and because I know views on AI-generated code differ; I’d rather the validation (the full PolyORB `examples/dsa` corpus on both build paths, plus a real application end to end) speak for the result. Scrutiny is welcome.

I’d love feedback — especially if you have an existing PolyORB/DSA app you’d be willing to point it at, or if you hit something that doesn’t work. Happy to help get configs building.

Regards.

---

<div class="post-metadata">

**Author:** ![Irvise](https://forum.ada-lang.io/letter_avatar_proxy/v4/letter/i/7ba0ec/32.png) [@Irvise](https://forum.ada-lang.io/u/Irvise)\
**Post date:** [June 30, 2026, 8:35pm UTC](https://forum.ada-lang.io/t/adsa-1-1-0-a-zeromq-backed-pcs-for-the-distributed-systems-annex-polyorb-replacement/4533/2 "2026-06-30T20:35:50Z")

</div>

Impressive work! I know that the ARG is looking into inputs about the DSA, you may want to share your experience with it with them 🙂

> [@charlie5](#):
>
> GPLv3

One point/question/request about this… Could the license be changed to that of GNAT (GPLv3 with linking exception, afaik). That way non-GPLv3 software can also make use of your DSA implementation and greatly facilitates the compilation/code distribution/reuse 🙂 The GPLv3 version of GCC-GNAT allows for anybody to link against the libraries without the code getting “infected” by the GPLv3. I love hard copyleft, but for these cases, even the FSF does not recommend going full-GPL, see [Announcing our license recommendations guide — Free Software Foundation — Working together for free software](https://www.fsf.org/blogs/licensing/new-license-recommendations-guide) and [How to Choose a License for Your Own Work - GNU Project - Free Software Foundation](https://www.gnu.org/licenses/license-recommendations.html) (libraries section)

Congrats!  
Fer

---

<div class="post-metadata">

**Author:** ![charlie5](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/charlie5/32/626_2.png) [@charlie5](https://forum.ada-lang.io/u/charlie5)\
**Post date:** [June 30, 2026, 10:00pm UTC](https://forum.ada-lang.io/t/adsa-1-1-0-a-zeromq-backed-pcs-for-the-distributed-systems-annex-polyorb-replacement/4533/3 "2026-06-30T22:00:15Z")

</div>

> [@Irvise](#):
>
> I know that the ARG is looking into inputs about the DSA

I quite recently posted to the ARG DSA discussion, altho w/o explicitly mentioning this project 🙂 .

> [@Irvise](#):
>
> Could the license be changed to that of GNAT …

Agreed and done 👍 .
