Not completely straight forward yet, but its becoming easier with every new app that people do, from which you can get inspiration.
There are some good abstractions in the various projects and sample applications implemented in node.js
, (check out Apps category in the forum). I think most of these would still benefit from an additional layer of abstraction which basically would make the difference compared to coding any application small or even negligible.
Just to touch briefly on the general case here:
Eventually, to start coding applications for SAFENetwork will be no different than it is today with any other framework/data storage solution. You add a reference to some wrapper library or SDK in your language of choice, and it should expose an interface that is familiar to any developer. Some caveats regarding architecture (see further down).
Back to right now:
There are a couple of wrappers available, but if you want some other language or structure, you’d have to do some of the work yourself with regards to mapping to FFI libraries, and in that case you need to read up a bit on the API and do some plumbing.
The most high level abstraction I know of today, which can be used for coding an application without knowing anything about the SAFENetwork API, is the CQRS + EventStore
library I have written in C#.
But it is still under development and you wouldn’t be able to do all that you want with it yet.
An additional drawback with it is that if you are not familiar with this application design and db type, and usually do CRUD type applications with relational databases, keyvalue stores or document dbs, it will be a bit of a mindset change which is not related at all to SAFENetwork (i.e. eventsourcing + cqrs). If however you do know these patterns and practices since before, I would say that it would be very simple to just start coding, in C# at least
Still under development though (not yet complete to allow for things like accessing same data from various applications, sharing with other users, and so on), so you would either have to complement it or focus on coding the business domain logic while it develops further.
But, to just get a feeling for the simplicity with which you can soon build apps, have a look at this example:
SAFEExamples.Notebook.
SAFENetwork application architecture
With regards to system architecture though, there are some paradigm changes, that requires new design patterns, new solutions. However, many of these will be available in abstractions too. Like for example, some basic api for managing data access between users and apps, or setting up network agreed logic (decentralized apps).