GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.
GraphQL queries access not just the properties of one resource but also smoothly follow references between them. While typical REST APIs require loading from multiple URLs, GraphQL APIs get all the data your app needs in a single request. Apps using GraphQL can be quick even on slow mobile network connections.
GraphQL APIs are organized in terms of types and fields, not endpoints. Access the full capabilities of your data from a single endpoint. GraphQL uses types to ensure Apps only ask for what’s possible and provide clear and helpful errors. Apps can use types to avoid writing manual parsing code.
GraphQL is a query language created by Facebook in 2012 which provides a common interface between the client and the server for data fetching and manipulations.
The client asks for various data from the GraphQL server via queries. The response format is described in the query and defined by the client instead of the server: they are called client‐specified queries.
The structure of the data is not hardcoded as in traditional REST APIs - this makes retrieving data from the server more efficient for the client.
GraphQL is a different way of structuring the contract between client and server. The servers publish a set of rules specific to an application. GraphQL then supplies the language to query your data for the correct answer, within the constraints of those rules.
A powerful Groovy-based web application framework for the JVM built on top of Spring Boot
Grails is an open source web application framework that uses the Apache Groovy programming language (which is in turn based on the Java platform). It is intended to be a high-productivity framework by following the "coding by convention" paradigm, providing a stand-alone development environment and hiding much of the configuration detail from the developer.
FLAT LEARNING CURVE
ON TOP OF SPRING BOOT
SMOOTH JAVA INTEGRATION
SEAMLESS GORM INTEGRATION
REST APIS, REACT, ANGULAR
Provide a web framework for the Java platform.
Re-use existing Java technologies such as Hibernate and Spring under a single interface
Offer a consistent development framework.
Offer documentation for key portions of the framework:
The Persistence framework.
Templates using GSP (Groovy Server Pages).
Dynamic tag libraries for creating web page components.
Customizable and extensible Ajax support.
Provide sample applications that demonstrate the framework.
Swagger is a specification for documenting REST API. It specifies the format (URL, method, and representation) to describe REST web services. It provides also tools to generate/compute the documentation from application code.
The goal of Swagger™ is to define a standard, language-agnostic interface to REST APIs which allows both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network traffic inspection. When properly defined via Swagger, a consumer can understand and interact with the remote service with a minimal amount of implementation logic. Similar to what interfaces have done for lower-level programming, Swagger removes the guesswork in calling the service.
2 Approach to start
A top-down approach where you would use the Swagger Editor to create your Swagger definition and then use the integrated Swagger Codegen tools to generate server implementation.
A bottom-up approach where you have an existing REST API for which you want to create a Swagger definition. Either you create the definition manually (using the same Swagger Editor mentioned above), or if you are using one of the supported frameworks (JAX-RS, node.js, etc), you can get the Swagger definition generated automatically for you.
HyperDex is a next generation key-value and document store with a wide array of features. HyperDex's key features -- namely its rich API, strong consistency, fault tolerance, support for MongoDB API, and ease of use -- provide strong guarantees to applications that are not matched by other NoSQL systems. HyperDex is an open source distributed data store. In the NoSQL data store space, HyperDex distinguishes itself by offering high performance, a rich API, ACID transactions that span multiple objects, and strong consistency and fault-tolerance guarantees.
Features: Distributed Data is distributed across the cluster, without a single point of failure. Flexible Data Model HyperDex can act both as a key-value datastore and a document store, supporting unstructured (schema-free), semi-structured, and structured (schema-based) data. High-Performance Next-generation replication and query protocols enable HyperDex to process operations with minimal overhead. Scalability Read and write throughput both increase linearly as new machines are added, with no downtime or interruption to applications. Fault-tolerant Data is automatically replicated across multiple servers to tolerate a user-specified number of concurrent failures. Failed nodes can be replaced with no downtime. Strong consistency HyperDex guarantees that every GET returns the result of the latest PUT. There are no complicated consistency models to learn or programming quirks, such as conflict resolution, to master. Multikey transactions HyperDex supports ACID transactions that span any number of objects.
RethinkDB is the first open-source, scalable JSON database built from the ground up for the realtime web. It inverts the traditional database architecture by exposing an exciting new access model – instead of polling for changes, the developer can tell RethinkDB to continuously push updated query results to applications in realtime. RethinkDB’s realtime push architecture dramatically reduces the time and effort necessary to build scalable realtime apps.
Open-source database for building realtime web applications
NoSQL database that stores schemaless JSON documents
Distributed database that is easy to scale
High availability database with automatic failover and robust fault tolerance
In addition to being designed from the ground up for realtime apps, RethinkDB offers a flexible query language, intuitive operations and monitoring APIs, and is easy to setup and learn.
The query-response database access model works well on the web because it maps directly to HTTP’s request-response. However, modern applications require sending data directly to the client in realtime. Use cases where companies benefited from RethinkDB’s realtime push architecture include:
Swing is a GUI widget toolkit for Java. It is part of Oracle's Java Foundation Classes (JFC) – an API for providing a graphical user interface (GUI) for Java programs. Swing was developed to provide a more sophisticated set of GUI components than the earlier Abstract Window Toolkit (AWT).
Swing API is a set of extensible GUI Components to ease the developer's life to create JAVA based Front End/GUI Applications. It is build on top of AWT API and acts as a replacement of AWT API, since it has almost every control corresponding to AWT controls.
Swing component follows a Model-View-Controller architecture to fulfill the following criterias.
A single API is to be sufficient to support multiple look and feel.
API is to be model driven so that the highest level API is not required to have data.
API is to use the Java Bean model so that Builder Tools and IDE can provide better services to the developers for use.
Swing is a set of program component s for Java programmers that provide the ability to create graphical user interface ( GUI ) components, such as buttons and scroll bars, that are independent of the windowing system for specific operating system . Swing components are used with the Java Foundation Classes ( JFC ).