frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: Itara – Distributed system topology as an explicit, executable layer

https://github.com/itara-project/itara
3•gkiss0001•2h ago
Hi HN, I'm Gábor, a software engineer from Budapest.

I spent almost a decade designing, building and maintaining distributed systems, and I came to truly understand why a lot of people define software architecture as "the stuff that's hard to change later". Changing service boundaries, communication protocol or serializers is time consuming and risky. The past few months, I've been building Itara, my attempt to ease that pain.

Itara takes the software topology that's currently spread across the codebase and configuration and infrastructure, and concentrates it into a dedicated, executable layer. This dedicated layer describes the topology as a directed graph, where the nodes are the components of the system, and the edges are the connections between them. The edges have all the properties of the connection, like the transport to use, the serializer to use, the failure handling strategy and so on. Colocated components, components running in the same process, are modelled with direct connections.

This gives me an accurate map of my topology, lets me change the topology without changing the business code, and keeps communication logic separate from business logic while still giving me direct control over the configuration, avoiding the network fallacies.

In Itara, each component consists of an API the other components can build against, and an implementation that actually implements the business logic. Event-driven design is supported through dedicated events APIs.

For each deployment unit, a wiring agent runs at startup to prepare the communication channels as specified by the wiring config. These channels implement the component APIs and are used by the application like regular interfaces. There is no runtime overhead, except for the structural observability events, because the wiring agent steps aside after startup.

The project aims to be language agnostic. The current implementation supports Java, with a Rust implementation at proof-of-concept level.

I collected a few common questions and their answers in an FAQ: https://github.com/itara-project/itara/blob/main/docs/FAQ.md

I prepared a demo, an order processing system that consists of 5 components, one of them written in Rust, communicating through HTTP and Kafka events. The demo shows that to change the topology, only the wiring file and the docker compose file need to change, the application code can stay the same. It also includes a deliberately flaky transport to demonstrate failure handling. The traces make the topology changes directly visible. Link to the demo: https://github.com/itara-project/itara/tree/main/demo

I'd appreciate your feedback! Does this solve a problem you've encountered? What parts of the direction resonate with you, and where do you think it falls short?

The spec, manifesto, and architecture docs are in the repo: https://github.com/itara-project/itara

Comments

Zie_Mordecai•2h ago
Hey, dope concept, after looking at it, first thing that came to mind was legacy systems and wrangling with business logic underneath.
gkiss0001•2h ago
Thanks! I had my fair share (or maybe more than my fair share) of tangled legacy systems. They were definitely one of the motivations for the project. I found that many of them are so hard to change because the business logic and communication concerns became tightly coupled over time. I'm trying to make Itara as easy to adopt as possible, so hopefully it can help untangle systems like that gradually rather than requiring a big rewrite.

Show HN: Shirei, cross-platform GUI framework in native Go

https://github.com/hasenj/go-shirei/
20•hsn915•1h ago•8 comments

Show HN: Mindwalk – Replay coding-agent sessions on a 3D map of your codebase

https://github.com/cosmtrek/mindwalk
135•cosmtrek•12h ago•55 comments

Show HN: Skillscript – A declarative, sandboxed language for tool orchestration

https://github.com/sshwarts/skillscript
10•sshwarts•4h ago•6 comments

Show HN: Kurvengefahr – browser CAD/CAM for pen plotters

https://kurvengefahr.org/
6•tibordp•3h ago•1 comments

Show HN: Broll – an MCP server that gives coding agents a content studio

https://github.com/luke-fairbanks/broll
3•lukefairbanks•1h ago•0 comments

Show HN: A lightweight app to let LLM work for oncall

https://www.neatcontext.com/
3•tanglearncode•1h ago•1 comments

Show HN: The Line of Hope – how current teams compare to past champions

https://titlehopes.com/mlb/standings/index.html
3•marcreicher•1h ago•0 comments

Show HN: Open-source browser mini-game where every level is provably solvable

https://www.hooping.io/
3•douvy•1h ago•2 comments

Show HN: JMT – Java Based MultiTool

3•shiningpr0xsm•1h ago•0 comments

Show HN: Launch first-party blogs at scale for free

https://www.letterstory.com
2•mathewpregasen•1h ago•0 comments

Show HN: AgentIndexed – a curated AI agent directory, no pay-to-play rankings

https://agentindexed.com/
2•casbattle•1h ago•0 comments

Show HN: Ant – A JavaScript runtime and ecosystem

https://antjs.org
311•theMackabu•21h ago•143 comments

Show HN: VectorSim Tool for Visualizing DSP

https://vectorspin.dsp-coach.com/vector_spin.html#time=1,1,1,1,1,1,1,1&iq_mode=freq&update_time=2...
2•jason_s•1h ago•0 comments

Show HN: I gave my AI coding agents a group chat (it's just a Git repo)

https://github.com/yonidavidson/agentcomm
2•yonidavidson•1h ago•0 comments

Show HN: AI Photo Editor – Professional-Grade Image Editing with Text Prompts

https://www.aiphotoeditor.ai/
3•vtoolpro•2h ago•0 comments

Show HN: Vigil – open-source TimeTracker with steroids

https://github.com/Brokenwatch24/vigil
2•jjaramillor•2h ago•0 comments

Show HN: TrialPilot – clinical trials from your phone, built by a patient

2•thenerdhead•2h ago•2 comments

Show HN: Pirate.kred – Tipjar DNS for Pirates to pay authors

https://pirate.kred/
3•smashah•2h ago•1 comments

Show HN: Instrumation a PYPI library for Instruments

https://github.com/abduznik/instrumation
3•abduznik•2h ago•0 comments

Show HN: Pickle Tasks – a virtual pickle jar that randomly picks your next task

https://pickletasks.com
3•thip•2h ago•3 comments

Show HN: Itara – Distributed system topology as an explicit, executable layer

https://github.com/itara-project/itara
3•gkiss0001•2h ago•2 comments

Show HN: A dark fantasy short story

https://lawfully.netlify.app/
3•darkhorse13•3h ago•0 comments

Show HN: Containix – Run Nix flakes as Kubernetes pods without images

https://containix.dev/
2•atmask•3h ago•0 comments

Show HN: Introducing: Zotfile Agents

https://www.zot.sh/docs/zotfiles
8•patriceckhart•3h ago•0 comments

Show HN: Learn by rebuilding Redis, Git, a database from scratch

https://shipthatcode.com
187•acley•1d ago•64 comments

Show HN: I built a live streaming platform

https://pairux.com/@moshcoding
2•buffer_overlord•3h ago•0 comments

Show HN: Agent Legibility Analyzer see if AI shopping agents can read your store

https://agentmint.net/
2•Abdalsalaam•3h ago•1 comments

Show HN: MealPlans.dev

https://mealplans.dev/
2•thequietmind•3h ago•1 comments

Show HN: Getting GLM 5.2 running on my slow computer

https://github.com/JustVugg/colibri
908•vforno•3d ago•231 comments

Show HN: Orbit – AR satellite tracker, watch 15k+ objects

https://nagylukas.github.io/orbit.html
84•lukas9•1d ago•19 comments