How To Dev - Considerations and Remarks about the Snap4City Architecture


We hope that, after the above introduction of Snap4City solutions and development environment, it is clear that the developers in Snap4City can exploit its capabilities of a rapid prototyping and with reduced needs of coding for developing applications and smart applications:

  • You do not need to Design the database with the design of entities and relationships since the data models are called Entity Models / IoT Device Model from which by Entity / device registration the instances are created. The data associated with Entity Instances (IoT Devices) may vary over time creating complex versioning and time series of each entity keeping trace of any kind of system and data evolution. Devices via their messages, time series can refer each other and create any complex pattern you need, more sophisticated relationships that you could create in classic relational databases.
  • You do not need to implement from scratch visual data representations since the connection from Big Data storage and visual rendering tools is already provided as optimized solution, just to be used from some Business Logic, or just connecting data to the graphic widget ready to be used. Thus, the user interface designer can focus on the structure of the dashboards, user interface and client-side business logic if any.
  • You do not need to design complex queries. In the world of big data, SQL is quite impossible to be used exploiting complex queries in which the explosion of temporary structure would create impossible processes to be implemented and would not be scalable. So that, the data models and structures with their complex relationships have to be well prepared to be exploited and scalable, all the relationships defined at level of model, devices, and instances can be efficiently managed by the provided semantic database. Thus, the optimized queries and filtering are provided ready to use via


Smart Applications can be developed by producing: Processing Logics / IoT Apps, Data Analytics and Dashboards with almost no coding activities on the functional aspects and for server side.

Coding may be needed into:

Smart Applications Developed on Snap4City implies to create your artefacts and smart solutions, decision support systems, business intelligence tools, etc., in fully control of your Intellectually Property and not open source.

You Applications and IPR in Snap4City are composed by:

  • Data Models: Entity Models / IoT Device Models, Smart Data Models, etc.
  • Proc.Logic / IoT App: data ingestion, adapter, transformation, wrappers, business logic, transcoding, integration, interoperability, algorithms, etc.
  • Data Analytics: algorithm and processing in RStudio or Python, ML, AI, XAI, etc.
  • User Interface Design: Dashboards, client-side business logic, Synoptics, widgets, templates, styles, etc.
  • Client-Side Business Logics (if any) realized in JavaScript on Dashboard widgets.
  • Server-Side Business Logics (if any) realized in Processing Logic as Node-RED and JavaScript.
  • and the data instances for the High-Level Types.

The fact that you have developed your solution in Snap4City (which is 100% open source) does not imply that the artefacts and your smart solutions are open source as well. They are 100% under your control, and you can decide how to release them, which kind of licence to impose on them. This also implies that Snap4City has no rights on what you have developed using Snap4City development tools. In fact, it is totally equivalent of developing a program with any other open-source development tool. For example, if you develop a database with MariaDB, the tables and queries are not open source; another example: if you develop something on NiFi Apache which is open source, your flow is not open source; another example: if you develop something on ECLIPSE which is open source, your Java/PHP/C++ Code is not open source, etc.

If you are developing some smart solutions on some platform labelled as Powered by Snap4City technology, the platform manager and owner may have specified some rights on what you have developed according to the terms of use THEY expose on their own platform, please read them in any case. For example, the rights to off and discharge your solution if it creates some problems or violate the rules imposed by the service. For example, ethical rules.