https://simonw.substack.com/p/how-strongdms-ai-team-build-se...
I got thinking that, hey, what if we built a digital twin of our enterprise application platform Cyoda? With an in-memory local Cyoda service, it would make it much easier for people to get started building Cyoda apps, and rapidly speed up development.
I also wanted to see how far one can go using agentic engineering to build that out, thinking it's a good use-case since the tool wasn't (originally) destined for production.
I'm a Java/Kotlin/Spring/Cassandra person, so I decided to write it in Go, because I've never written a line of Go. This would ensure that I stay hands off from the code and see this from the perspective of an architect and project manager.
But after the in-memory storage engine was built, I quickly realized that it would be straightforward to implement a postgres plugin. Then I remembered sqlite. This looked so cool, that I decided over Easter to tackle Cassandra.
And out came cyoda-go.
We're still working intensively on fleshing it out, but the vision is to provide an open source EDBMS (Entity Database Managment System) that has production quality and can cover a very wide variety of use cases.
The design is based on our work of the last ten years on Cyoda.
So what's an EDBMS? ...you are probably asking.
Under the hood, it's a combination of a JSON/document database, a workflow engine, messaging/queuing middleware, and a CDC audit. Data are entity state machines persisted append-only. Transitions can launch externalized processors over gRPC that do business logic. All mutations are bi-temporal and the consistency model is snapshot isolation with first-committer-wins on entity-level conflicts. An engine automates workflow traversal, so that a single trigger cascades across entities inside the same transactional boundary.
The core assembly is a single Go binary. Once you've understood the design, it's really easy to write event-based applications with transactional rigour and a bi-temporal view on the data at no performance cost, and built-in auditability and data lineage.
Repo: https://github.com/Cyoda-platform/cyoda-go Docs: https://docs.cyoda.net
I would be very interested to know what the community thinks. Is this kind of architecture, that consolidates several key frameworks into a unified platform, effective in accelerating the building of complex enterprise systems?