25:
78:
616:
does not disappear if it is re-implemented as a set of microservices. Some of the complexity gets translated into operational complexity. Other places where the complexity manifests itself are increased network traffic and resulting in slower performance. Also, an application made up of any number of
555:
Moving responsibilities between services is more difficult. It may involve communication between different teams, rewriting the functionality in another language or fitting it into a different infrastructure. However, microservices can be deployed independently from the rest of the application, while
905:
Packaging, deployment, and scheduling: Large-scale systems require robust package management, and deployment systems to manage rolling or blue-green deployments, and rollbacks if necessary. A scheduler helps determine which particular execution node a new set of services can be deployed to based on
566:
are regarded as an anti-pattern in microservices-based architectures, resulting in a tighter coupling of all the participants within the transaction. However, the lack of this technology causes awkward dances which have to be implemented by all the transaction participants in order to maintain data
377:
In May 2011, a workshop of software architects held near Venice used the term 'microservice' to describe a common architectural style that many participants had been recently exploring. By May 2012, the same group had decided that 'microservices' was the most appropriate name. James Lewis presented
163:
in the codebase, allowing developers to evolve their services with limited restrictions, and reducing additional complexity. Consequently, organizations can develop software with rapid growth and scalability, as well as implement off-the-shelf services more easily. These benefits come with the cost
796:
Kubernetes
Service and Ingress resources, Istio, Ambassador are solutions that provide both north–south (traffic into and out of data center) as well as east–west (traffic across data centers or clouds or regions) API gateway functions. Zuul can also be implemented along with Kubernetes, providing
365:
which is a software design pattern that is used along with the microservices. This pattern makes the design of the microservice possible since it isolates in layers the business logic from the auxiliary services needed in order to deploy and run the microservice completely independent from others.
291:
with holistic service monitoring are necessary to effectively develop, maintain, and operate such applications. A consequence of (and rationale for) following this approach is that the individual microservices can be individually scaled. In the monolithic approach, an application supporting three
240:
A microservice is not a layer within a monolithic application (for example, the web controller or the backend-for-frontend). Rather, it is a self-contained piece of business functionality with clear interfaces, and may, through its own internal components, implement a layered architecture. From a
709:
In a service mesh, the service instances and their sidecar proxies are said to make up the data plane, which includes not only data management but also request processing and response. The service mesh also includes a control plane for managing the interaction between services, mediated by their
2461:
data formats. These mechanisms usually provide only partial and incomplete understanding of the semantics of the components themselves. In the presence of such complexity, it is not surprising that applications typically bake-in many assumptions about the expected behavior of the ecosystem they
663:
Computer microservices can be implemented in different programming languages and might use different infrastructures. Therefore, the most important technology choices are the way microservices communicate with each other (synchronous, asynchronous, UI integration) and the protocols used for the
444:
It is considered bad practice to make the service too small, as then the runtime overhead and the operational complexity can overwhelm the benefits of the approach. When services become too fine-grained, alternative approaches should be considered, such as packaging the function as a library or
382:
in March 2012 at 33rd Degree in Kraków in
Microservices - Java, the Unix Way, as did Fred George about the same time. Adrian Cockcroft, former director for the Cloud Systems at Netflix, described this approach as "fine-grained SOA", pioneered the style at web-scale, as did many of the others
491:: microservices are considered a viable means for modernizing existing monolithic software application. There are experience reports of several companies who have successfully replaced parts of their existing software with microservices or are in the process of doing so. The process for
440:
In the context of software architecture, services dedicated to a single task, such as calling a specific backend system or performing a particular calculation, are known as atomic services. Services that call atomic services to consolidate an output are referred to as composite services.
582:
Data aggregation. In order to have a full view of a working system, it is required to extract data sets from the microservices repositories and aggregate them into a single schema. For example, to be able to create operational reports that are not possible using a single microservice
292:
functions would have to be scaled in its entirety even if only one of these functions had a resource constraint. With microservices, only the microservice supporting the function with resource constraints needs to be scaled out, thus providing resource and cost optimization benefits.
802:
Security concerns: Many security concerns are pushed to the API gateway implementation. With distributed microservice applications, it makes sense to not reinvent the security wheel and allow for policy definition and implementation in components that are shared by all services.
689:
In a service mesh, each service instance is paired with an instance of a reverse proxy server, called a service proxy, sidecar proxy, or sidecar. The service instance and sidecar proxy share a container, and the containers are managed by a container orchestration tool such as
559:
Viewing the size of services as the primary structuring mechanism can lead to too many services when the alternative of internal modularization may lead to a simpler design. This requires understanding the overall architecture of the applications and interdependencies between
863:
Distributed tracing: Per-process logging and metric monitoring have their place, but neither can reconstruct the complex paths that transactions take as they propagate across a distributed system. Distributed tracing is an essential tool for a microservices platform.
893:
Autoscaling and self-healing: Distributed systems respond to higher load by scaling horizontally: the platform must detect and auto-respond to such conditions. Furthermore, the system needs to detect failures and attempt auto-restarts without operator input.
789:
API gateway: The granularity of APIs provided by microservices is often different than what a service client needs. API Gateways implement facades and provide additional services like proxying, and protocol translation, and other management functions.
413:
A key step in defining a microservice architecture is figuring out how big an individual microservice has to be. There is no consensus or litmus test for this, as the right answer depends on the business and organizational context. For instance,
455:
In the granularity of microservices discussion, there is a spectrum. On one end are the
Anaemic Services, which do not have a large number of responsibilities, and on the other end are the Modular Monolith, which are large modules of a system.
706:. The service proxies are responsible for communication with other service instances and can support capabilities such as service (instance) discovery, load balancing, authentication and authorization, secure communications, and others.
754:
Kubernetes ConfigMaps exposes the configuration stored in etcd via services. Kubernetes
Secrets supports the service-based secure deployment and usage of sensitive configuration information (such as passwords, certificates, etc.).
369:
In 2007, Juval Löwy in his writing and speaking called for building systems in which every class was a service. Löwy realized this required the use of a technology that can support such granular use of services, and he extended
769:
Kubernetes
Services provide deployment-time registration of instances of services that are internally available within the cluster. Ingress is a mechanism whereby a service can be exposed to clients outside the cluster.
730:
ecosystem with an equivalent from the Spring Cloud world. One noteworthy aspect of the Spring Cloud ecosystem is that they are all Java-based technologies, whereas
Kubernetes is a polyglot runtime platform.
471:: This makes the application easier to understand, develop, test, and become more resilient to architecture erosion. This benefit is often argued in comparison to the complexity of monolithic architectures.
1788:
576:
While not specific to microservices, the decomposition methodology often uses functional decomposition, which does not handle changes in the requirements while still adding the complexity of services.
878:
Resilience and fault tolerance: Distributed systems must be capable of auto-routing around failures, and be capable of routing requests to the service instance that will provide an optimum response.
573:
The protocol typically used with microservices (HTTP) was designed for public-facing services, and as such is unsuitable for working internal microservices that often must be impeccably reliable.
570:
Development and support of many services are more challenging if they are built with different tools and technologies - this is especially a problem if engineers move between projects frequently.
1647:
Dragoni, Nicola; Giallorenzo, Saverio; Lafuente, Alberto Lluch; Mazzara, Manuel; Montesi, Fabrizio; Mustafin, Ruslan; Safina, Larisa (2017). "Microservices: Yesterday, Today, and
Tomorrow".
814:
Centralized logging: It is important to have a centralized log gathering and analysis infrastructure to manage a plethora of services – many of which are operating in a distributed fashion.
766:
Spring Cloud Eureka allows clients to register to it, maintains a heartbeat with registered clients, and maps service names to hostnames for clients that lookup services by service name.
2453:"Access to system components and the interfaces between clients and their applications, however, are mediated via a number of often unrelated mechanisms, including informally documented
722:
developed a microservice framework to support their internal applications, and then open-sourced many portions of that framework. Many of these tools have been popularized via the
668:...). In a traditional system, most technology choices like the programming language impact the whole system. Therefore, the approach to choosing technologies is quite different.
778:: The key to scaling a distributed system is being able to run more than one instance of a component. Load has to be then distributed across those instances via a load balancer.
2096:
Chen, Lianping; Ali Babar, Muhammad (2014). "Towards an
Evidence-Based Understanding of Emergence of Architecture through Continuous Refactoring in Agile Software Development".
335:
interfaces. Any service, at any granularity, can be exposed." He described how a well-designed microservices platform "applies the underlying architectural principles of the
726:– they have been re-implemented as Spring-based tools under the umbrella of the Spring Cloud project. The table below shows a comparison of an implementing feature from the
191:
There is no single definition for microservices. A consensus has evolved over time in the industry. Some of the defining characteristics that are frequently cited include:
849:
Centralized metrics: A centralized area where the health and performance of the individual services and overall system can be monitored is essential to proper operations.
479:: Since microservices are implemented and deployed independently of each other, i.e. they run within independent processes, they can be monitored and scaled independently.
1563:
287:
deployment. According to Fowler, because of the large number (when compared to monolithic application implementations) of services, decentralized continuous delivery and
452:
is being employed in modeling the domain for which the system is being built, then a microservice could be as small as an aggregate or as large as a bounded
Context.
579:
The very concept of microservice is misleading since there are only services. There is no sound definition of when a service starts or stops being a microservice.
2745:
Christudas
Binildas (June 27, 2019). Practical Microservices Architectural Patterns: Event-Based Java Microservices with Spring Boot and Spring Cloud. Apress.
339:
and REST services together with Unix-like scheduling and pipelines to provide radical flexibility and improved simplicity in service-oriented architectures.
748:
Configuration management: configuration for a microservice application needs to be externalized from the code and be retrievable via a simple service call.
2713:
1430:
Mendonca, Nabor C.; Jamshidi, Pooyan; Garlan, David; Pahl, Claus (2019-10-16). "Developing Self-Adaptive Microservice Systems: Challenges and Directions".
718:
Implementing a microservice architecture is very difficult. There are many concerns (see table below) that any microservice architecture needs to address.
784:
Kubernetes Service provides the ability for the service to be load-balanced across service instances. This is not the equivalent of what Ribbon provides.
257:
software development process. A change to a small part of the application only requires rebuilding and redeploying only one or a small number of services.
159:
their services independently, reduce code interdependency and increase readability and modularity within a codebase. This is achieved by reducing several
751:
Spring Config Server, Netflix Archaius both support a Git-repository—based location for configuration. Archaius supports data typing of configuration.
695:
3515:
2892:
2882:
1579:
401:
In February 2020, the Cloud Microservices Market Research Report predicted that the global microservice architecture market size will increase at a
386:
Microservices is a specialization of an implementation approach for service-oriented architectures used to build flexible, independently deployable
3520:
2255:
1789:"Cloud Microservices Market 2020 Trends, Market Share, Industry Size, Opportunities, Analysis and Forecast by 2026 – Instant Tech Market News"
1267:
Nadareishvili, I., Mitra, R., McLarty, M., Amundsen, M., Microservice Architecture: Aligning Principles, Practices, and Culture, O'Reilly 2016
622:
1387:
809:
The Kubernetes ecosystem provides service meshes like Istio, which are capable of providing security through their API gateway mechanisms.
506:
and scale their respective services independently. It also allows the architecture of an individual service to emerge through continuous
228:
Services are small in size, messaging-enabled, bounded by contexts, autonomously developed, independently deployable, decentralized and
164:
of needing to maintain a decoupled structure within the codebase, which means its initial implementation is more complex than that of a
2627:
2197:
2874:
2778:
1133:
374:
to do just that, taking every class and treating it as a service while maintaining the conventional programming model of classes.
44:
Please help improve this article by looking for better, more reliable sources. Unreliable citations may be challenged and removed.
300:
There are numerous claims as to the origin of the term microservices. As early as 2005, Peter Rodgers introduced the term "Micro-
2124:
534:
Inter-service calls over a network have a higher cost in terms of network latency and message processing time than in-process
2929:
2721:
1928:
1843:
1674:
1631:
1606:
1545:
1366:
284:
2292:
1479:
100:
88:
2309:
1583:
1042:
2750:
2731:
2536:
2481:
2347:
1986:
1961:
1181:
1156:
1105:
1076:
968:
1277:
928:
Singleton application: limit a specific service to run as the only instance of that service within the entire system.
331:). Services can call services (+multiple language run-times). Complex service assemblies are abstracted behind simple
2672:
2454:
2433:
1820:
1414:
1379:
362:
246:
118:
59:
651:
is often measured through "99th percentile" because median and average latencies can be misleading as they can miss
304:" during a presentation at the Web Services Edge conference. Against conventional thinking and at the height of the
2859:
1011:
433:. Architects need to take into account user requirements, responsibilities, and architectural characteristics (aka
371:
1886:
Dragoni, Nicola; Lanese, Ivan; Larsen, Stephan Thordal; Mazzara, Manuel; Mustafin, Ruslan; Safina, Larisa (2017).
3403:
2844:
989:
312:
160:
2038:"Microservices in agile software development: a workshop-based study into issues, advantages, and disadvantages"
3058:
2229:
1319:
983:
233:
1761:
781:
Spring Cloud Ribbon provides the ability for service clients to load balance across instances of the service.
3197:
2214:
995:
347:
308:
261:
2738:
1887:
2924:
2771:
1480:"Service-Oriented Development on NetKernel- Patterns, Processes & Products to Reduce System Complexity"
1343:
3413:
3078:
2934:
2914:
2437:
1807:
O. Zimmermann, Domain-Specific Service Decomposition with Microservice API Patterns, Microservices 2019,
402:
351:
2887:
2474:
Understanding Distributed Systems: What every developer should know about large distributed applications
3260:
2954:
2949:
775:
638:
605:
434:
38:
2363:
Pautasso, Cesare (2017). "Microservices in Practice, Part 2: Service Integration and Sustainability".
1808:
3477:
3247:
3160:
3054:
2256:"Understanding Software Evolution using a Combination of Software Visualization and Software Metrics"
1729:
1021:
563:
418:
uses a service-oriented architecture where service often maps 1:1 with a team of 3 to 10 engineers.
2839:
2266:
2101:
276:
33:
3138:
1714:
637:
According to O'Reilly, each microservice should have its own architectural characteristics (a.k.a
3482:
3280:
2764:
2707:
763:: maintain a list of service instances that are available for work within a microservice domain.
204:
2553:
2457:(APIs), idiosyncratic foreign function interfaces, complex ill-understood model definitions, or
1383:
1202:
Pautasso, Cesare (2017). "Microservices in Practice, Part 1: Reality Check and Service Design".
2966:
2804:
613:
511:
492:
390:. The microservices approach is the first realisation of SOA that followed the introduction of
165:
3202:
3155:
3085:
2854:
2653:. EuroMLSys '21. Online, United Kingdom: Association for Computing Machinery. pp. 7–14.
952:
648:
642:
593:
395:
140:
2398:
Pautasso, Cesare (2018). "Consistent Disaster Recovery for Microservices: the BAC Theorem".
346:, whose aim was to make code less brittle and to make large-scale, complex software systems
96:
3275:
3143:
2974:
2451:"BRASS Building Resource Adaptive Software Systems". U.S. Government. DARPA. April 7, 2015.
1908:
1016:
499:
449:
387:
343:
280:
268:
218:
180:
152:
132:
2182:
2004:"Drivers and Barriers for Microservice Adoption – A Survey among Professionals in Germany"
1510:
8:
3487:
3270:
3108:
2897:
592:
The architecture introduces additional complexity and new problems to deal with, such as
549:
515:
503:
468:
254:
196:
156:
2944:
1912:
464:
The benefit of decomposing an application into different smaller services are numerous:
3385:
3207:
3073:
2415:
2380:
2163:
2053:
1934:
1898:
1680:
1652:
1457:
1439:
1219:
917:
Job management: scheduled computations disconnected from any individual user requests.
672:
626:
621:, which increases the architectural complexity. Various organizing principles (such as
618:
484:
422:
316:
264:
24:
2072:
1747:
1129:
383:
mentioned in this article - Joe Walnes, Dan North, Evan Bottcher, and Graham Tackley.
3398:
3029:
2746:
2727:
2717:
2532:
2477:
2343:
2288:
2155:
2125:"Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture"
2037:
2003:
1982:
1957:
1924:
1839:
1670:
1627:
1602:
1541:
1461:
1410:
1362:
1300:
1245:
1177:
1152:
1101:
1072:
871:
760:
699:
539:
426:
358:
2498:
2384:
2167:
2057:
1684:
3467:
3448:
3389:
3359:
3349:
2726:
S. Newman, Building Microservices – Designing Fine-Grained Systems, O'Reilly, 2015
2654:
2419:
2407:
2372:
2147:
2139:
2105:
2045:
2015:
1938:
1916:
1868:
1662:
1449:
1223:
1211:
909:
Spring Boot, Apache Maven. The Spring Cloud system does not have a true scheduler.
723:
545:
415:
229:
200:
2283:
Richardson, Chris (November 2018). "Chapter 4. Managing transactions with sagas".
675:
has published a specification for developing microservices, Eclipse MicroProfile.
249:
describes a microservices-based architecture as having the following properties:
3472:
3443:
2902:
2098:
Proceedings Working IEEE/IFIP Conference on Software Architecture 2014 WICSA 2014
1666:
1006:
947:
806:
Spring Cloud Security addresses many security concerns through Spring Cloud Zuul
609:
320:
242:
1920:
354:(ROC), a generalized computation abstraction in which REST is a special subset.
3265:
3237:
3192:
2411:
1487:
617:
microservices has a larger number of interface points to access its respective
597:
328:
144:
2319:
629:, etc.) have been applied to reduce the impact of such additional complexity.
319:
are Micro-Web-Services". He goes on to say "Micro-Services are composed using
3509:
3494:
3455:
3320:
3222:
3170:
2907:
2159:
1001:
833:
818:
535:
488:
2658:
2049:
1453:
3393:
3049:
2919:
2151:
703:
684:
641:), and architects should not define uniform characteristics for the entire
612:. All of these problems have to be addressed at scale. The complexity of a
527:
The microservices approach is subject to criticism for a number of issues:
2706:
Special theme issue on microservices, IEEE Software 35(3), May/June 2018,
2646:
2109:
2102:
The 11th Working IEEE/IFIP Conference on Software Architecture(WICSA 2014)
267:(to independently deployable services), business-driven development (e.g.
16:
Collection of loosely coupled services used to build computer applications
3290:
3227:
3121:
3099:
3045:
2795:
2611:
2036:
Taibi, Davide; Lenarduzzi, Valentina; Pahl, Claus; Janes, Andrea (2017).
1872:
507:
476:
315:-services" and on slide #4 of the conference presentation, he discusses "
301:
241:
strategic perspective, microservice architecture essentially follows the
148:
2019:
1699:
3232:
3212:
3187:
3133:
3126:
3014:
2994:
2714:
Microservices Architecture – Aligning Principles, Practices and Culture
2376:
2143:
1897:. Lecture Notes in Computer Science. Vol. 10742. pp. 95–104.
1406:
1304:
1215:
727:
691:
430:
379:
1252:
The IEEE International Conference on Software Architecture (ICSA 2018)
350:
to change. Ultimately this path of research led to the development of
3255:
3217:
3009:
2864:
2526:
1582:" (Microsoft TechEd Conference, May 2009), SOA206. Archived from the
1348:
957:
342:
Rodgers' work originated in 1999 with the Dexter research project at
1361:
Josuttis, N. (2007). SOA in Practice. Sebastopol, CA, US: O'Reilly.
1251:
3438:
3295:
3063:
3024:
3019:
2999:
2989:
2984:
1903:
1809:
https://www.conf-micro.services/2019/slides//keynotes/Zimmerman.pdf
1657:
1444:
822:
222:
2123:
Balalaie, Armin; Heydarnoori, Abbas; Jamshidi, Pooyan (May 2016).
556:
teams working on monoliths need to synchronize to deploy together.
225:, hardware and software environments, depending on what fits best.
3408:
3354:
3150:
3068:
2849:
2787:
2756:
2314:
2215:"Developing Microservices for PaaS with Spring and Cloud Foundry"
1646:
973:
856:
837:
719:
665:
652:
155:. A microservice-based architecture enables teams to develop and
3365:
3305:
3300:
3179:
2979:
2832:
2822:
2817:
2651:
Proceedings of the 1st Workshop on Machine Learning and Systems
2198:"Why unit testing is not enough when it comes to microservices"
1043:"Microservice architectures: more than the sum of their parts?"
963:
841:
826:
625:(HATEOAS), interface and data model documentation captured via
601:
391:
288:
275:
It is common for microservices architectures to be adopted for
2708:
https://ieeexplore.ieee.org/xpl/tocresult.jsp?isnumber=8354413
1247:
Microservices: Architecting for Continuous Delivery and DevOps
1098:
Fundamentals of Software Architecture: An Engineering Approach
3333:
3328:
3310:
3116:
2827:
2595:
2310:"10 Tips for failing badly at Microservices by David Schmitz"
495:
of legacy applications is done using an incremental approach.
405:
of 21.37% from 2019 to 2026 and reach $ 3.1 billion by 2026.
1715:"MicroService Architecture: A Personal Journey of Discovery"
3460:
2939:
2812:
2571:
2122:
978:
793:
Spring Cloud Zuul provides configuration-based API facades
305:
208:
2008:
Enterprise Modelling and Information Systems Architectures
1885:
1429:
168:. Interfaces need to be designed carefully and treated as
3285:
3004:
2263:
In Proceedings of LMO 2002 (Langages et Modèles à Objets)
1745:
1509:
Russell, Perry; Rodgers, Peter; Sellman, Royston (2004).
912:
Docker, Rkt, Kubernetes Scheduler & Deployment, Helm
336:
332:
324:
169:
2035:
1511:"Architecture and Design of an XML Application Platform"
1317:
2628:"Spring Cloud for Microservices Compared to Kubernetes"
2742:- University of Colombo School of Computing, Sri Lanka
1508:
1473:
1471:
214:
Services are organized around business capabilities.
2688:
2031:
2029:
1888:"Microservices: How to Make Your Application Scale"
2674:Managing microservices with the Istio service mesh
2333:
2331:
2329:
1468:
195:Services in a microservice architecture are often
2001:
3507:
2647:"Towards Optimal Configuration of Microservices"
2645:Somashekar, Gagan; Gandhi, Anshul (2021-04-26).
2644:
2026:
1318:Ford, N; Richards, M; Sadalage, P; Dehghani, Z.
421:To find the right level of service granularity,
143:that arranges an application as a collection of
2531:. CreateSpace Independent Publishing Platform.
2342:. Addison-Wesley Professional. pp. 73–75.
2326:
1069:Patterns of Enterprise Application Architecture
502:by enabling small autonomous teams to develop,
2042:Proceedings of the XP2017 Scientific Workshops
1174:Microservices: Flexible Software Architectures
1123:
1121:
1119:
1117:
510:. Microservice-based architectures facilitate
2772:
2183:"Experiences from Failing with Microservices"
2095:
2002:Knoche, Holger; Hasselbring, Wilhelm (2019).
1979:Microservices: Flexible Software Architecture
1378:
900:Health check, self-healing, and auto-scaling
623:hypermedia as the engine of application state
2253:
2209:
2207:
1239:
1237:
1235:
1233:
713:
217:Services can be implemented using different
203:to fulfill a goal using technology-agnostic
2356:
1712:
1114:
797:configuration at individual service level.
2779:
2765:
2282:
2254:Lanza, Michele; Ducasse, Stéphane (2002).
1400:
1197:
1195:
1193:
394:and is becoming more popular for building
2391:
2204:
1902:
1656:
1649:Present and Ulterior Software Engineering
1443:
1230:
1127:
522:
498:Distributed development: it parallelizes
445:integrating it into other microservices.
119:Learn how and when to remove this message
60:Learn how and when to remove this message
3516:Architectural pattern (computer science)
2739:Microservice Architecture, Lecture Notes
2397:
2362:
2230:"How small should your microservice be?"
2195:
2180:
2089:
1297:Microservices: Patterns and Applications
1294:
1263:
1261:
1201:
664:communication (RESTful HTTP, messaging,
95:Relevant discussion may be found on the
2513:The mean and median often mask outliers
2496:
2471:
2174:
1859:Yousif, Mazin (2016). "Microservices".
1697:
1566:". (Channel9, ARCast.TV, October 2007).
1477:
1320:"Software Architecture: The Hard Parts"
1190:
3508:
2307:
2227:
2070:
1951:
1858:
1833:
1727:
1146:
1136:from the original on 14 February 2018.
1066:
881:Spring Hystrix, Turbine, & Ribbon
408:
372:Windows Communication Foundation (WCF)
3521:Service-oriented (business computing)
2760:
2736:Wijesuriya, Viraj Brian (2016-08-29)
2552:Swart, Stephanie (14 December 2016).
2551:
2524:
1976:
1700:"Micro services - Java, the Unix Way"
1344:CI/CD for microservices architectures
1282:Microsoft Azure Cloud Design Patterns
1258:
1171:
960:, a domain-oriented data architecture
283:, and applications using lightweight
2337:
2189:
1786:
1621:
1596:
1540:. O’Reilly Media. pp. 543–553.
1535:
1243:
1092:
1090:
1088:
71:
18:
2228:Tilkov, Stefan (17 November 2014).
2073:"Microservice architecture pattern"
1762:"Continuous Deployment: Strategies"
1401:Richardson, Chris (November 2018).
923:Kubernetes Jobs and Scheduled Jobs
531:Services form information barriers.
13:
2786:
2700:
2455:application programming interfaces
2432:
2196:Calandra, Mariano (7 April 2021).
1895:Perspectives of System Informatics
1626:. O’Reilly Media. pp. 74–75.
1601:. O’Reilly Media. pp. 48–51.
969:Fallacies of distributed computing
245:of "Do one thing and do it well".
87:tone or style may not reflect the
14:
3532:
2528:Microservices - A Practical Guide
1390:from the original on Oct 3, 2023.
1085:
885:
632:
604:/availability/consistency (BAC),
234:released with automated processes
175:A microservice is analogous to a
2181:Stenberg, Jan (11 August 2014).
1624:Programming WCF Services, 3rd ed
1599:Programming WCF Services, 1st ed
1538:Programming WCF Services, 1st ed
1278:"Backends For Frontends Pattern"
1012:Self-contained system (software)
311:(SOA) hype curve he argued for "
151:services, communicating through
101:guide to writing better articles
76:
23:
2681:
2665:
2638:
2620:
2604:
2588:
2564:
2545:
2518:
2490:
2465:
2444:
2426:
2301:
2276:
2247:
2221:
2116:
2064:
1995:
1970:
1945:
1879:
1852:
1838:. Addison-Wesley Professional.
1827:
1813:
1801:
1780:
1754:
1746:James Lewis and Martin Fowler.
1739:
1730:"Netflix heads into the clouds"
1721:
1706:
1691:
1640:
1615:
1590:
1570:
1554:
1529:
1502:
1486:. SYS-CON Media. Archived from
1478:Rodgers, Peter (Feb 15, 2005).
1423:
1394:
1372:
1355:
1336:
1311:
1288:
1270:
1071:. Addison-Wesley Professional.
990:Representational state transfer
740:Spring Cloud & Netflix OSS
678:
658:
587:
186:
2690:The Kubernetes Package Manager
2525:Wolff, Eberhard (2018-04-15).
2497:Bhargav, Nikhil (2024-03-18).
1836:Domain-Driven Design Distilled
1405:. Manning Publications. 1.4.1
1346:", Azure Architecture Center,
1172:Wolff, Eberhard (2016-10-12).
1165:
1140:
1060:
1035:
984:Interface description language
260:Adheres to principles such as
1:
1029:
996:Service-oriented architecture
852:Spring Spectator & Atlas
429:their component designs with
309:service-oriented architecture
1667:10.1007/978-3-319-67425-4_12
1384:"Microservice Prerequisites"
855:Heapster, Prometheus, &
7:
1921:10.1007/978-3-319-74313-4_8
1787:Research, Verified Market.
1352:. Retrieved 9 January 2018.
940:
639:non functional requirements
459:
435:non-functional requirements
352:resource-oriented computing
10:
3537:
2412:10.1109/MCC.2018.011791714
1713:Fred George (2013-03-20).
1147:Newman, Sam (2015-02-20).
682:
295:
3426:
3378:
3342:
3319:
3246:
3178:
3169:
3107:
3098:
3038:
2965:
2873:
2803:
2794:
2712:I. Nadareishvili et al.,
2499:"What's the P99 Latency?"
2472:Vitillo, Roberto (2021).
2438:"Microservice Trade-Offs"
2265:: 135–149. Archived from
1564:Every Class a WCF Service
1022:Web-oriented architecture
714:A comparison of platforms
378:some of those ideas as a
277:cloud-native applications
2340:Righting Software 1st ed
2287:. Manning Publications.
1977:Wolff, Eberhard (2016).
1580:Every Class As a Service
1100:. O'Reilly Media. 2020.
199:that communicate over a
2659:10.1145/3437984.3458828
2308:Devoxx (Aug 30, 2017).
2050:10.1145/3120459.3120483
1834:Vaughn, Vernon (2016).
1454:10.1109/MS.2019.2955937
1244:Chen, Lianping (2018).
1067:Fowler, Martin (2002).
32:Some of this article's
2677:, Kubernetes, May 2017
2554:"Eclipse MicroProfile"
1954:Building Microservices
1149:Building Microservices
737:Microservices concern
614:monolithic application
523:Criticism and concerns
512:continuous integration
493:software modernization
363:hexagonal architecture
2634:, Red hat, 2016-12-09
2285:Microservice Patterns
2110:10.1109/WICSA.2014.45
1403:Microservice Patterns
953:Cross-cutting concern
931:Spring Cloud Cluster
552:are more complicated.
487:of heterogeneous and
396:continuously deployed
219:programming languages
153:lightweight protocols
141:architectural pattern
2716:, O'Reilly, 2016,
2558:projects.eclipse.org
2400:IEEE Cloud Computing
2338:Löwy, Juval (2019).
1952:Newman, Sam (2015).
1873:10.1109/MCC.2016.101
1861:IEEE Cloud Computing
1821:"Amazon SOA mandate"
1728:Farrow, Rik (2012).
1651:. pp. 195–216.
1622:Löwy, Juval (2010).
1597:Löwy, Juval (2007).
1536:Löwy, Juval (2007).
1515:HP Technical Reports
1017:Serverless computing
906:current conditions.
867:Spring Cloud Sleuth
450:domain-driven design
427:continuously iterate
344:Hewlett Packard Labs
281:serverless computing
269:domain-driven design
181:domain-driven design
133:software engineering
2476:. Roberto Vitillo.
2071:Richardson, Chris.
2020:10.18417/emisa.14.1
1913:2017arXiv170207149D
1409:and microservices.
516:continuous delivery
409:Service granularity
321:Unix-like pipelines
317:Software components
255:continuous delivery
166:monolithic codebase
139:architecture is an
3074:Application server
2377:10.1109/MS.2017.56
2144:10.1109/ms.2016.64
1981:. Addison Wesley.
1823:. 13 October 2011.
1768:. 10 December 2014
1484:CloudComputingExpo
1382:(28 August 2014).
1216:10.1109/MS.2017.24
1176:. Addison-Wesley.
1151:. O'Reilly Media.
1047:IONOS Digitalguide
673:Eclipse Foundation
643:distributed system
564:Two-phased commits
327:meets Unix = true
253:Lends itself to a
99:. See Knowledge's
3503:
3502:
3422:
3421:
3399:Browser extension
3374:
3373:
3094:
3093:
3030:Phusion Passenger
2722:978-1-491-95979-4
2014:: 1:1–35–1:1–35.
1930:978-3-319-74312-7
1845:978-0-13-443442-1
1766:javacodegeeks.com
1676:978-3-319-67424-7
1633:978-0-596-80548-7
1608:978-0-596-52699-3
1547:978-0-596-52699-3
1367:978-0-596-52955-0
938:
937:
888:(example: Istio)
761:Service discovery
710:sidecar proxies.
359:Alistair Cockburn
129:
128:
121:
91:used on Knowledge
89:encyclopedic tone
70:
69:
62:
3528:
3468:Web API security
3390:Remote scripting
3360:Web SQL Database
3176:
3175:
3105:
3104:
2801:
2800:
2781:
2774:
2767:
2758:
2757:
2695:
2694:
2685:
2679:
2678:
2669:
2663:
2662:
2642:
2636:
2635:
2624:
2618:
2617:
2608:
2602:
2601:
2592:
2586:
2585:
2583:
2582:
2568:
2562:
2561:
2549:
2543:
2542:
2522:
2516:
2515:
2510:
2509:
2494:
2488:
2487:
2469:
2463:
2452:
2448:
2442:
2441:
2430:
2424:
2423:
2395:
2389:
2388:
2360:
2354:
2353:
2335:
2324:
2323:
2322:on Apr 22, 2021.
2318:. Archived from
2305:
2299:
2298:
2294:978-1-61729454-9
2280:
2274:
2273:
2272:on Feb 27, 2021.
2271:
2260:
2251:
2245:
2244:
2242:
2240:
2225:
2219:
2218:
2211:
2202:
2201:
2193:
2187:
2186:
2178:
2172:
2171:
2129:
2120:
2114:
2113:
2093:
2087:
2086:
2084:
2083:
2077:microservices.io
2068:
2062:
2061:
2033:
2024:
2023:
1999:
1993:
1992:
1974:
1968:
1967:
1949:
1943:
1942:
1906:
1892:
1883:
1877:
1876:
1856:
1850:
1849:
1831:
1825:
1824:
1817:
1811:
1805:
1799:
1798:
1796:
1795:
1784:
1778:
1777:
1775:
1773:
1758:
1752:
1751:
1743:
1737:
1736:
1734:
1725:
1719:
1718:
1710:
1704:
1703:
1695:
1689:
1688:
1660:
1644:
1638:
1637:
1619:
1613:
1612:
1594:
1588:
1574:
1568:
1558:
1552:
1551:
1533:
1527:
1526:
1524:
1522:
1506:
1500:
1499:
1497:
1495:
1475:
1466:
1465:
1447:
1427:
1421:
1420:
1398:
1392:
1391:
1376:
1370:
1359:
1353:
1340:
1334:
1333:
1331:
1330:
1315:
1309:
1308:
1292:
1286:
1285:
1274:
1268:
1265:
1256:
1255:
1241:
1228:
1227:
1199:
1188:
1187:
1169:
1163:
1162:
1144:
1138:
1137:
1125:
1112:
1111:
1094:
1083:
1082:
1064:
1058:
1057:
1055:
1054:
1039:
934:Kubernetes Pods
734:
733:
724:Spring Framework
542:service process.
388:software systems
124:
117:
113:
110:
104:
103:for suggestions.
80:
79:
72:
65:
58:
54:
51:
45:
27:
19:
3536:
3535:
3531:
3530:
3529:
3527:
3526:
3525:
3506:
3505:
3504:
3499:
3473:Web application
3418:
3370:
3338:
3315:
3242:
3165:
3090:
3034:
2961:
2940:JavaScript JSGI
2920:ASP.NET Handler
2903:Jakarta Servlet
2869:
2790:
2785:
2703:
2701:Further reading
2698:
2687:
2686:
2682:
2671:
2670:
2666:
2643:
2639:
2626:
2625:
2621:
2610:
2609:
2605:
2594:
2593:
2589:
2580:
2578:
2570:
2569:
2565:
2550:
2546:
2539:
2523:
2519:
2507:
2505:
2495:
2491:
2484:
2470:
2466:
2462:interact with".
2450:
2449:
2445:
2431:
2427:
2396:
2392:
2361:
2357:
2350:
2336:
2327:
2306:
2302:
2295:
2281:
2277:
2269:
2258:
2252:
2248:
2238:
2236:
2226:
2222:
2213:
2212:
2205:
2194:
2190:
2179:
2175:
2127:
2121:
2117:
2094:
2090:
2081:
2079:
2069:
2065:
2034:
2027:
2000:
1996:
1989:
1975:
1971:
1964:
1950:
1946:
1931:
1890:
1884:
1880:
1857:
1853:
1846:
1832:
1828:
1819:
1818:
1814:
1806:
1802:
1793:
1791:
1785:
1781:
1771:
1769:
1760:
1759:
1755:
1748:"Microservices"
1744:
1740:
1732:
1726:
1722:
1711:
1707:
1696:
1692:
1677:
1645:
1641:
1634:
1620:
1616:
1609:
1595:
1591:
1575:
1571:
1559:
1555:
1548:
1534:
1530:
1520:
1518:
1507:
1503:
1493:
1491:
1476:
1469:
1428:
1424:
1417:
1399:
1395:
1377:
1373:
1360:
1356:
1341:
1337:
1328:
1326:
1316:
1312:
1293:
1289:
1276:
1275:
1271:
1266:
1259:
1242:
1231:
1200:
1191:
1184:
1170:
1166:
1159:
1145:
1141:
1130:"Microservices"
1128:Martin Fowler.
1126:
1115:
1108:
1096:
1095:
1086:
1079:
1065:
1061:
1052:
1050:
1041:
1040:
1036:
1032:
1027:
1007:Unix philosophy
943:
716:
687:
681:
661:
635:
610:fault tolerance
590:
525:
518:and deployment.
462:
411:
298:
243:Unix philosophy
189:
177:bounded context
145:loosely coupled
125:
114:
108:
105:
94:
85:This section's
81:
77:
66:
55:
49:
46:
43:
28:
17:
12:
11:
5:
3534:
3524:
3523:
3518:
3501:
3500:
3498:
3497:
3492:
3491:
3490:
3485:
3480:
3470:
3465:
3464:
3463:
3453:
3452:
3451:
3446:
3436:
3430:
3428:
3424:
3423:
3420:
3419:
3417:
3416:
3411:
3406:
3401:
3396:
3382:
3380:
3376:
3375:
3372:
3371:
3369:
3368:
3363:
3362:(formerly W3C)
3357:
3352:
3346:
3344:
3340:
3339:
3337:
3336:
3331:
3325:
3323:
3317:
3316:
3314:
3313:
3308:
3303:
3298:
3293:
3288:
3283:
3278:
3273:
3268:
3263:
3258:
3252:
3250:
3244:
3243:
3241:
3240:
3238:XMLHttpRequest
3235:
3230:
3225:
3220:
3215:
3210:
3205:
3200:
3195:
3190:
3184:
3182:
3173:
3167:
3166:
3164:
3163:
3158:
3153:
3148:
3147:
3146:
3136:
3131:
3130:
3129:
3124:
3113:
3111:
3102:
3096:
3095:
3092:
3091:
3089:
3088:
3083:
3082:
3081:
3071:
3066:
3061:
3052:
3042:
3040:
3036:
3035:
3033:
3032:
3027:
3022:
3017:
3012:
3007:
3002:
2997:
2992:
2987:
2982:
2977:
2971:
2969:
2967:Apache modules
2963:
2962:
2960:
2959:
2958:
2957:
2947:
2942:
2937:
2932:
2927:
2922:
2917:
2912:
2911:
2910:
2900:
2895:
2890:
2885:
2879:
2877:
2871:
2870:
2868:
2867:
2862:
2857:
2852:
2847:
2842:
2837:
2836:
2835:
2830:
2825:
2820:
2809:
2807:
2798:
2792:
2791:
2788:Web interfaces
2784:
2783:
2776:
2769:
2761:
2755:
2754:
2751:978-1484245002
2743:
2734:
2732:978-1491950357
2724:
2710:
2702:
2699:
2697:
2696:
2680:
2664:
2637:
2619:
2603:
2587:
2572:"MicroProfile"
2563:
2544:
2538:978-1717075901
2537:
2517:
2489:
2483:978-1838430207
2482:
2464:
2443:
2434:Fowler, Martin
2425:
2390:
2355:
2349:978-0136524038
2348:
2325:
2300:
2293:
2275:
2246:
2220:
2203:
2188:
2173:
2115:
2088:
2063:
2025:
1994:
1988:978-0134602417
1987:
1969:
1963:978-1491950357
1962:
1944:
1929:
1878:
1851:
1844:
1826:
1812:
1800:
1779:
1753:
1738:
1720:
1705:
1690:
1675:
1639:
1632:
1614:
1607:
1589:
1569:
1553:
1546:
1528:
1501:
1490:on 20 May 2018
1467:
1422:
1415:
1393:
1371:
1354:
1335:
1310:
1295:Lucas Krause.
1287:
1269:
1257:
1229:
1189:
1183:978-0134602417
1182:
1164:
1158:978-1491950357
1157:
1139:
1113:
1107:978-1492043454
1106:
1084:
1078:978-0321127426
1077:
1059:
1049:. 2 March 2020
1033:
1031:
1028:
1026:
1025:
1019:
1014:
1009:
1004:
999:
993:
987:
981:
976:
971:
966:
961:
955:
950:
944:
942:
939:
936:
935:
932:
929:
925:
924:
921:
918:
914:
913:
910:
907:
902:
901:
898:
895:
890:
889:
886:service meshes
884:Health check,
882:
879:
875:
874:
868:
865:
860:
859:
853:
850:
846:
845:
830:
815:
811:
810:
807:
804:
799:
798:
794:
791:
786:
785:
782:
779:
776:Load balancing
772:
771:
767:
764:
757:
756:
752:
749:
745:
744:
741:
738:
715:
712:
680:
677:
660:
657:
634:
633:Best practices
631:
606:load balancing
598:message format
589:
586:
585:
584:
580:
577:
574:
571:
568:
561:
557:
553:
543:
532:
524:
521:
520:
519:
496:
489:legacy systems
481:
480:
473:
472:
461:
458:
410:
407:
329:loose-coupling
297:
294:
273:
272:
258:
238:
237:
226:
215:
212:
188:
185:
127:
126:
84:
82:
75:
68:
67:
34:listed sources
31:
29:
22:
15:
9:
6:
4:
3:
2:
3533:
3522:
3519:
3517:
3514:
3513:
3511:
3496:
3495:Web framework
3493:
3489:
3486:
3484:
3481:
3479:
3476:
3475:
3474:
3471:
3469:
3466:
3462:
3459:
3458:
3457:
3456:Web standards
3454:
3450:
3447:
3445:
3442:
3441:
3440:
3437:
3435:
3434:Microservices
3432:
3431:
3429:
3425:
3415:
3412:
3410:
3407:
3405:
3402:
3400:
3397:
3395:
3391:
3387:
3384:
3383:
3381:
3377:
3367:
3364:
3361:
3358:
3356:
3353:
3351:
3348:
3347:
3345:
3341:
3335:
3332:
3330:
3327:
3326:
3324:
3322:
3318:
3312:
3309:
3307:
3304:
3302:
3299:
3297:
3294:
3292:
3289:
3287:
3284:
3282:
3279:
3277:
3274:
3272:
3269:
3267:
3264:
3262:
3259:
3257:
3254:
3253:
3251:
3249:
3245:
3239:
3236:
3234:
3231:
3229:
3226:
3224:
3223:Web messaging
3221:
3219:
3216:
3214:
3211:
3209:
3206:
3204:
3201:
3199:
3196:
3194:
3191:
3189:
3186:
3185:
3183:
3181:
3177:
3174:
3172:
3168:
3162:
3159:
3157:
3154:
3152:
3149:
3145:
3142:
3141:
3140:
3137:
3135:
3132:
3128:
3125:
3123:
3120:
3119:
3118:
3115:
3114:
3112:
3110:
3106:
3103:
3101:
3097:
3087:
3084:
3080:
3077:
3076:
3075:
3072:
3070:
3067:
3065:
3062:
3060:
3056:
3053:
3051:
3047:
3044:
3043:
3041:
3037:
3031:
3028:
3026:
3023:
3021:
3018:
3016:
3013:
3011:
3008:
3006:
3003:
3001:
2998:
2996:
2993:
2991:
2988:
2986:
2983:
2981:
2978:
2976:
2973:
2972:
2970:
2968:
2964:
2956:
2953:
2952:
2951:
2948:
2946:
2943:
2941:
2938:
2936:
2933:
2931:
2928:
2926:
2923:
2921:
2918:
2916:
2913:
2909:
2906:
2905:
2904:
2901:
2899:
2896:
2894:
2891:
2889:
2886:
2884:
2881:
2880:
2878:
2876:
2872:
2866:
2863:
2861:
2858:
2856:
2853:
2851:
2848:
2846:
2843:
2841:
2838:
2834:
2831:
2829:
2826:
2824:
2821:
2819:
2816:
2815:
2814:
2811:
2810:
2808:
2806:
2802:
2799:
2797:
2793:
2789:
2782:
2777:
2775:
2770:
2768:
2763:
2762:
2759:
2752:
2748:
2744:
2741:
2740:
2735:
2733:
2729:
2725:
2723:
2719:
2715:
2711:
2709:
2705:
2704:
2692:
2691:
2684:
2676:
2675:
2668:
2660:
2656:
2652:
2648:
2641:
2633:
2629:
2623:
2615:
2614:
2607:
2599:
2598:
2591:
2577:
2573:
2567:
2559:
2555:
2548:
2540:
2534:
2530:
2529:
2521:
2514:
2504:
2500:
2493:
2485:
2479:
2475:
2468:
2460:
2456:
2447:
2439:
2435:
2429:
2421:
2417:
2413:
2409:
2405:
2401:
2394:
2386:
2382:
2378:
2374:
2371:(2): 97–104.
2370:
2366:
2365:IEEE Software
2359:
2351:
2345:
2341:
2334:
2332:
2330:
2321:
2317:
2316:
2311:
2304:
2296:
2290:
2286:
2279:
2268:
2264:
2257:
2250:
2235:
2231:
2224:
2216:
2210:
2208:
2199:
2192:
2184:
2177:
2169:
2165:
2161:
2157:
2153:
2152:10044/1/40557
2149:
2145:
2141:
2137:
2133:
2132:IEEE Software
2126:
2119:
2111:
2107:
2103:
2099:
2092:
2078:
2074:
2067:
2059:
2055:
2051:
2047:
2043:
2039:
2032:
2030:
2021:
2017:
2013:
2009:
2005:
1998:
1990:
1984:
1980:
1973:
1965:
1959:
1955:
1948:
1940:
1936:
1932:
1926:
1922:
1918:
1914:
1910:
1905:
1900:
1896:
1889:
1882:
1874:
1870:
1866:
1862:
1855:
1847:
1841:
1837:
1830:
1822:
1816:
1810:
1804:
1790:
1783:
1767:
1763:
1757:
1749:
1742:
1731:
1724:
1716:
1709:
1701:
1698:James Lewis.
1694:
1686:
1682:
1678:
1672:
1668:
1664:
1659:
1654:
1650:
1643:
1635:
1629:
1625:
1618:
1610:
1604:
1600:
1593:
1587:
1585:
1581:
1573:
1567:
1565:
1557:
1549:
1543:
1539:
1532:
1516:
1512:
1505:
1489:
1485:
1481:
1474:
1472:
1463:
1459:
1455:
1451:
1446:
1441:
1437:
1433:
1432:IEEE Software
1426:
1418:
1416:9781617294549
1412:
1408:
1404:
1397:
1389:
1385:
1381:
1380:Martin Fowler
1375:
1368:
1364:
1358:
1351:
1350:
1345:
1339:
1325:
1321:
1314:
1306:
1302:
1298:
1291:
1283:
1279:
1273:
1264:
1262:
1253:
1249:
1248:
1240:
1238:
1236:
1234:
1225:
1221:
1217:
1213:
1209:
1205:
1204:IEEE Software
1198:
1196:
1194:
1185:
1179:
1175:
1168:
1160:
1154:
1150:
1143:
1135:
1131:
1124:
1122:
1120:
1118:
1109:
1103:
1099:
1093:
1091:
1089:
1080:
1074:
1070:
1063:
1048:
1044:
1038:
1034:
1023:
1020:
1018:
1015:
1013:
1010:
1008:
1005:
1003:
1002:Microfrontend
1000:
997:
994:
991:
988:
985:
982:
980:
977:
975:
972:
970:
967:
965:
962:
959:
956:
954:
951:
949:
946:
945:
933:
930:
927:
926:
922:
920:Spring Batch
919:
916:
915:
911:
908:
904:
903:
899:
896:
892:
891:
887:
883:
880:
877:
876:
873:
869:
866:
862:
861:
858:
854:
851:
848:
847:
843:
839:
835:
834:Elasticsearch
831:
828:
824:
820:
819:Elasticsearch
816:
813:
812:
808:
805:
801:
800:
795:
792:
788:
787:
783:
780:
777:
774:
773:
768:
765:
762:
759:
758:
753:
750:
747:
746:
742:
739:
736:
735:
732:
729:
725:
721:
711:
707:
705:
701:
697:
693:
686:
676:
674:
669:
667:
656:
654:
650:
646:
644:
640:
630:
628:
624:
620:
615:
611:
607:
603:
599:
595:
581:
578:
575:
572:
569:
565:
562:
558:
554:
551:
547:
544:
541:
537:
533:
530:
529:
528:
517:
513:
509:
505:
501:
497:
494:
490:
486:
483:
482:
478:
475:
474:
470:
467:
466:
465:
457:
453:
451:
446:
442:
438:
436:
432:
428:
424:
419:
417:
406:
404:
399:
397:
393:
389:
384:
381:
375:
373:
367:
364:
360:
355:
353:
349:
345:
340:
338:
334:
330:
326:
322:
318:
314:
310:
307:
303:
293:
290:
286:
282:
278:
270:
266:
263:
259:
256:
252:
251:
250:
248:
247:Martin Fowler
244:
235:
231:
227:
224:
220:
216:
213:
210:
206:
202:
198:
194:
193:
192:
184:
182:
178:
173:
171:
167:
162:
158:
154:
150:
146:
142:
138:
134:
123:
120:
112:
102:
98:
92:
90:
83:
74:
73:
64:
61:
53:
41:
40:
35:
30:
26:
21:
20:
3433:
3109:Browser APIs
3050:Web resource
2737:
2689:
2683:
2673:
2667:
2650:
2640:
2631:
2622:
2612:
2606:
2596:
2590:
2579:. Retrieved
2576:MicroProfile
2575:
2566:
2557:
2547:
2527:
2520:
2512:
2506:. Retrieved
2503:baeldung.com
2502:
2492:
2473:
2467:
2458:
2446:
2428:
2406:(1): 49–59.
2403:
2399:
2393:
2368:
2364:
2358:
2339:
2320:the original
2313:
2303:
2284:
2278:
2267:the original
2262:
2249:
2237:. Retrieved
2233:
2223:
2191:
2176:
2138:(3): 42–52.
2135:
2131:
2118:
2097:
2091:
2080:. Retrieved
2076:
2066:
2041:
2011:
2007:
1997:
1978:
1972:
1956:. O'Reilly.
1953:
1947:
1894:
1881:
1864:
1860:
1854:
1835:
1829:
1815:
1803:
1792:. Retrieved
1782:
1770:. Retrieved
1765:
1756:
1741:
1723:
1708:
1693:
1648:
1642:
1623:
1617:
1598:
1592:
1577:
1572:
1561:
1556:
1537:
1531:
1519:. Retrieved
1517:. p. 62
1514:
1504:
1492:. Retrieved
1488:the original
1483:
1438:(2): 70–79.
1435:
1431:
1425:
1402:
1396:
1374:
1357:
1347:
1338:
1327:. Retrieved
1324:Thoughtworks
1323:
1313:
1296:
1290:
1284:. Microsoft.
1281:
1272:
1246:
1210:(1): 91–98.
1207:
1203:
1173:
1167:
1148:
1142:
1097:
1068:
1062:
1051:. Retrieved
1046:
1037:
948:Conway's law
717:
708:
700:Docker Swarm
688:
685:Service mesh
679:Service mesh
670:
662:
659:Technologies
647:
636:
591:
588:Complexities
567:consistency.
526:
463:
454:
447:
443:
439:
420:
412:
400:
385:
376:
368:
361:wrote about
356:
341:
302:Web-Services
299:
274:
262:fine-grained
239:
190:
187:Introduction
176:
174:
161:dependencies
149:fine-grained
137:microservice
136:
130:
115:
106:
86:
56:
50:October 2018
47:
36:
3488:Progressive
3483:Single-page
3291:WebAssembly
3271:Geolocation
3228:Web storage
3134:C NPRuntime
3122:LiveConnect
3100:Client-side
3046:Web service
2975:mod_include
2930:Python ASGI
2925:Python WSGI
2875:Server APIs
2796:Server-side
2597:Netflix OSS
1772:28 December
1576:Juval Löwy
1560:Juval Löwy
832:EFK Stack (
817:ELK Stack (
743:Kubernetes
583:repository.
560:components.
508:refactoring
500:development
485:Integration
477:Scalability
431:programmers
37:may not be
3510:Categories
3256:DOM events
3233:Web worker
3218:WebSockets
3079:comparison
3015:mod_python
2995:mod_parrot
2828:Encryption
2632:Developers
2581:2021-04-11
2508:2024-06-08
2082:2017-03-19
1904:1702.07149
1867:(5): 4–5.
1794:2020-02-18
1658:1606.04036
1445:1910.07660
1407:Scale cube
1329:2023-01-20
1305:B00VJ3NP4A
1053:2022-03-29
1030:References
870:Hawkular,
728:Kubernetes
692:Kubernetes
683:See also:
550:deployment
540:monolithic
469:Modularity
423:architects
380:case study
265:interfaces
3414:Scripting
3276:IndexedDB
3127:XPConnect
3086:Scripting
3010:mod_proxy
2955:container
2945:Perl PSGI
2935:Ruby Rack
2908:container
2865:WebSocket
2805:Protocols
2600:, Git Hub
2239:4 January
2160:0740-7459
1521:20 August
1494:19 August
1462:204744007
1349:Microsoft
958:Data mesh
619:ecosystem
538:within a
398:systems.
285:container
223:databases
205:protocols
197:processes
109:June 2024
97:talk page
3439:Web page
3296:WebAuthn
3171:Web APIs
3064:Open API
3025:mod_ruby
3020:mod_wsgi
3000:mod_perl
2990:mod_mono
2985:mod_lisp
2915:CLI OWIN
2616:, Spring
2385:30256045
2168:18802650
2104:. IEEE.
2058:28134110
1685:14612986
1586:on 2010.
1584:original
1388:Archived
1134:Archived
941:See also
823:Logstash
653:outliers
600:design,
460:Benefits
425:have to
357:In 2005
207:such as
39:reliable
3449:Dynamic
3409:Web IDL
3355:GraphQL
3321:Khronos
3151:ActiveX
3139:C PPAPI
3117:C NPAPI
3069:Webhook
3005:mod_php
2950:Portlet
2898:COM ASP
2893:C ISAPI
2888:C ASAPI
2883:C NSAPI
2420:4560021
2315:YouTube
1939:1643730
1909:Bibcode
1254:. IEEE.
1224:5635705
974:GraphQL
857:Grafana
838:Fluentd
720:Netflix
666:GraphQL
649:Latency
627:Swagger
594:latency
546:Testing
296:History
201:network
3444:Static
3427:Topics
3404:Mashup
3379:Topics
3366:WebUSB
3343:Others
3306:WebRTC
3301:WebGPU
3193:Canvas
3180:WHATWG
3039:Topics
2980:mod_jk
2833:WebDAV
2749:
2730:
2720:
2693:, Helm
2535:
2480:
2459:ad hoc
2418:
2383:
2346:
2291:
2166:
2158:
2056:
1985:
1960:
1937:
1927:
1842:
1683:
1673:
1630:
1605:
1544:
1460:
1413:
1365:
1303:
1222:
1180:
1155:
1104:
1075:
992:(REST)
964:DevOps
872:Jaeger
842:Kibana
827:Kibana
602:backup
504:deploy
416:Amazon
392:DevOps
348:robust
289:DevOps
157:deploy
3394:DHTML
3350:Gears
3334:WebGL
3329:WebCL
3311:WebXR
3213:Video
3188:Audio
2613:Cloud
2416:S2CID
2381:S2CID
2270:(PDF)
2259:(PDF)
2234:Innoq
2164:S2CID
2128:(PDF)
2054:S2CID
1935:S2CID
1899:arXiv
1891:(PDF)
1733:(PDF)
1681:S2CID
1653:arXiv
1458:S2CID
1440:arXiv
1220:S2CID
1024:(WOA)
998:(SOA)
986:(IDL)
704:DC/OS
702:, or
696:Nomad
536:calls
323:(the
230:built
170:API's
3478:Rich
3461:REST
3392:vs.
3388:and
3386:Ajax
3266:File
3198:CORS
3161:XBAP
3144:NaCl
3057:vs.
3048:vs.
2860:WSRP
2850:FCGI
2845:SCGI
2813:HTTP
2747:ISBN
2728:ISBN
2718:ISBN
2533:ISBN
2478:ISBN
2344:ISBN
2289:ISBN
2241:2017
2156:ISSN
1983:ISBN
1958:ISBN
1925:ISBN
1840:ISBN
1774:2016
1671:ISBN
1628:ISBN
1603:ISBN
1542:ISBN
1523:2015
1496:2015
1411:ISBN
1363:ISBN
1301:ASIN
1178:ISBN
1153:ISBN
1102:ISBN
1073:ISBN
979:gRPC
671:The
608:and
548:and
403:CAGR
313:REST
306:SOAP
232:and
209:HTTP
135:, a
3286:SVG
3281:MSE
3261:EME
3248:W3C
3208:SSE
3203:DOM
3156:BHO
3059:ROA
3055:WOA
2855:AJP
2840:CGI
2655:doi
2408:doi
2373:doi
2148:hdl
2140:doi
2106:doi
2046:doi
2016:doi
1917:doi
1869:doi
1663:doi
1450:doi
1212:doi
655:.
448:If
437:).
337:Web
333:URI
325:Web
179:in
131:In
3512::
2823:v3
2818:v2
2649:.
2630:,
2574:.
2556:.
2511:.
2501:.
2436:.
2414:.
2402:.
2379:.
2369:34
2367:.
2328:^
2312:.
2261:.
2232:.
2206:^
2162:.
2154:.
2146:.
2136:33
2134:.
2130:.
2100:.
2075:.
2052:.
2044:.
2040:.
2028:^
2012:14
2010:.
2006:.
1933:.
1923:.
1915:.
1907:.
1893:.
1863:.
1764:.
1679:.
1669:.
1661:.
1513:.
1482:.
1470:^
1456:.
1448:.
1436:38
1434:.
1386:.
1322:.
1299:.
1280:.
1260:^
1250:.
1232:^
1218:.
1208:34
1206:.
1192:^
1132:.
1116:^
1087:^
1045:.
897:-
844:)
840:,
836:,
829:)
825:,
821:,
698:,
694:,
645:.
596:,
514:,
279:,
271:).
221:,
183:.
172:.
147:,
2780:e
2773:t
2766:v
2753:.
2661:.
2657::
2584:.
2560:.
2541:.
2486:.
2440:.
2422:.
2410::
2404:5
2387:.
2375::
2352:.
2297:.
2243:.
2217:.
2200:.
2185:.
2170:.
2150::
2142::
2112:.
2108::
2085:.
2060:.
2048::
2022:.
2018::
1991:.
1966:.
1941:.
1919::
1911::
1901::
1875:.
1871::
1865:3
1848:.
1797:.
1776:.
1750:.
1735:.
1717:.
1702:.
1687:.
1665::
1655::
1636:.
1611:.
1578:"
1562:"
1550:.
1525:.
1498:.
1464:.
1452::
1442::
1419:.
1369:.
1342:"
1332:.
1307:.
1226:.
1214::
1186:.
1161:.
1110:.
1081:.
1056:.
236:.
211:.
122:)
116:(
111:)
107:(
93:.
63:)
57:(
52:)
48:(
42:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.