A hands-on walkthrough of building a custom DSL extension using Ash Framework's Spark library in Elixir. The author creates an AshRpc extension, generates code using Ash.Info.Manifest following the five-step pattern (generate, verify, walk, validate shape, persist), and extends the example to dispatch RPC calls to a remote BEAM node. The post covers writing the DSL section and entity definitions, manifest-based code generation with validation, and using Erlang's distributed node capabilities to execute remote actions, with full source code provided on GitHub.
Table of contents
Step 0: Project SetupStep 1: Writing the AshRpc ExtensionStep 2: Code Generation with ManifestGet Meraj Molla ’s stories in your inboxStep 3: Remote Procedure Call11 Impressions