Architecture
Architecture
in information technology (especially computers and more recently networks) architecture is a term applied to both the process and the outcome of thinking out and specifying overall structure, logical components, and logical interrelationships of a computer, its operating system and network. Read more: WhatIs.com
API
(Application Programming Interface) – set of definitions, protocols, schemas, tools and practices to communicate with the application. To developers, API is what Graphical User Interface is to users. It allows developers (and finally other applications) to communicate with applications. Read more: Wikipedia
REST
(Representational State Transfer) is a set of guidelines for building web services providing interoperability between remote computers. It is focused on resources and basic operations (like editing, reading, adding) related to them. Commonly used to expose public API. Read more: Wikipedia
SOAP
Simple Object Access Protocol is a way of exchanging structured information between computers. Compared to REST it’s more formal, less flexible and requires schema definition (WSDL). Read more: Wikipedia
Monolith
is an architecture style based on running on a single application layer that tends to bundle all the functionalities needed by the architecture together. To put it simply, it means being composed all in one piece. Monolithic software is designed to be self-contained; components of the program are interconnected and interdependent rather than loosely coupled as is the case with modular software programs. Furthermore, if any program component must be updated, the whole application has to be rewritten, whereas in modular applications, any separate module (such as a microservice) can be changed without affecting other parts of the program. Read more: WhatIs.com
Distributed system
is a model in which components located on networked computers communicate and coordinate their actions by passing messages, appearing to its users as a single coherent system. The components interact with each other in order to achieve a common goal. Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components.Read more: Wikipedia
Service-oriented architecture (SOA)
is a style of software design based on discrete software components (services) that collectively provide functionalities of larger software architecture. A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online. In this approach, services are provided to other components by application components, through a communication protocol over a network. Basic principles of service-oriented architecture are independent of vendors, products and technologies. Service-oriented architecture has been mainly been used and focused on big enterprise scale. Read more: Wikipedia
Microservices
a variant of the service-oriented architecture (SOA) architectural style. The idea behind microservices is that some types of applications become easier to build and maintain when they are broken down into smaller, composable pieces which work together. Each component is autonomous, developed separately, and the application is then simply the sum of its constituent components. This is in contrast to a traditional, “monolithic” application developed in one piece. Microservices style is used by many organizations (like Netflix, Uber, Facebook) today as a game changer to achieve high degree of agility, speed of delivery, and scale. Read more: Martin Fowler
CRUD
acronym of Create, Read, Update, Delete. It describes a type of applications focused on simple data editing without any rich business operations. Colloquially called “database viewers”. Read more: Wikipedia