5 ms·
Show HN: Early access launch of Adama, a serverless multiplayer game platform
Greetings!
My name is Jeff, and I’m “early-access” launching my SaaS “serverless” infrastructure for Jamstack, games (particularly board games), and traditional real-time scenarios (presence, pub/sub, etc…). This work is rooted in the frustration of building complicated board games using existing infrastructure. It just so happens that making board games easier has wide reaching implications.
Landing page: https://www.adama-platform.com/
This is a radically different kind of “serverless” infrastructure where I want the benefits of both a serverless architecture with a monolithic mindset, and this is achieved by building a comprehensive language to transform documents within the service as close to data as possible with minimal reads and writes.
As this is “early access”, I’ve outlined the current challenges on the site and have a launch post which goes into more detail: https://www.adama-platform.com/2022/03/02/early-access-launch-and-confession.html
From a technical perspective, the now and future architecture has some interesting tidbits around streaming. However, the key value proposition is the language which I enjoy using (and building). This language has (1) await/async semantics to perform coordination between multiple people, (2) integrated queries for simpler thinking about state, (3) privacy as a first class citizen, (4) access control is baked in, (4) reactive formulas which lazily compute values, (5) simple message passing between user and the document, (6) modern features which make doing bad things impossible, (7) state can be rewound with a rewind, (8) no need to serialize state or think about networking, and (9) more https://book.adama-platform.com/
I’ve got my work cut out for me, but I’m starting the effort to find early adopters and build community that want to play as I push forward on my strategy since many of my investments are driven by my pathologies: https://www.adama-platform.com/2022/02/24/open-strategy.html
I would deeply appreciate any feedback, comments, and questions here, via my new shiny email: jeff@adama-platform.com, or my discord channel: https://discord.gg/W3Cj4By
- mathgladiator 5y agoLinks made manifest: * https://www.adama-platform.com/ https://www.adama-platform.com/ * https://www.adama-platform.com/2022/03/02/early-access-launch-and-confession.html https://www.adama-platform.com/2022/03/02/early-access-launc... * https://www.adama-platform.com/2022/02/24/open-strategy.html https://www.adama-platform.com/2022/02/24/open-strategy.html * https://book.adama-platform.com/ https://book.adama-platform.com/ * https://discord.gg/W3Cj4By https://discord.gg/W3Cj4By
- hpx7 5y agoLooks very interesting. Is there some example Adama application source I can browse to see what typical code looks like?
- mathgladiator 5y agoAbsolutely! A reasonably decent example would be a hearts implementation: http://book.adama-platform.com/examples/hearts.html http://book.adama-platform.com/examples/hearts.html There is also a very simple tutorial built around chat: http://book.adama-platform.com/tutorial/04-space.html http://book.adama-platform.com/tutorial/04-space.html shows a very minimal example.
- scott_s 5y agoLive examples of running programs that users can interact with would go a long way to helping to make the examples concrete. Were you inspired by the Actor model (https://en.wikipedia.org/wiki/Actor_model https://en.wikipedia.org/wiki/Actor_model)? Or am I missing something fundamental?
- mathgladiator 5y agoThanks! I will definitely do that. I connected with the Actor model when I found a comment by Carl Hewitt that everyone reinvents the actor model. Sadly, I can't seem to find that comment now. An Adama document is basically a durable actor that can only acknowledge messages. I'm working on figuring out a way for Adama documents to generate notifications.
- XCSme 5y agoI looked over the example, but I had a hard time understanding what exactly it does and which data is persistent and not.
- mathgladiator 5y agoThanks for looking it over. Imagine you are looking at a thrift spec or a protobuf file where all the data is laid out, and then ask how would you add transformation to that spec. So, the Adama starts with laying out state and then goes hog wild on how to transform that state. As to what is persisted, the document you are outline is. At core, Adama is a key to document store except you don't have the typical operations. Instead of put or get, you can "send a message to a document" or subscribe to "your personal view of the document". The language bridges the gap in how sending messages transform the document and how privacy dictates your personal view.