Files
awesome-awesomeness/html/integration.html
2024-04-20 19:22:54 +02:00

2567 lines
142 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-integration-awesome">Awesome Integration <a
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
alt="Awesome" /></a></h1>
<blockquote>
<p>A curated list of awesome system integration software, patterns and
resources.</p>
</blockquote>
<p>System integration is the process of linking together different IT
systems (components) to functionally cooperate as a whole.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#projects">Projects</a>
<ul>
<li><a href="#api-management">API Management</a></li>
<li><a href="#api-design">API Design</a></li>
<li><a href="#api-documentation">API Documentation</a></li>
<li><a href="#api-gateway">API Gateway</a></li>
<li><a href="#api-testing">API Testing</a></li>
<li><a href="#bre">BRE</a></li>
<li><a href="#bpm">BPM</a></li>
<li><a href="#data-mapping-solution">Data Mapping Solution</a></li>
<li><a href="#esb">ESB</a></li>
<li><a href="#etl">ETL</a></li>
<li><a href="#integration-frameworks">Integration Frameworks</a></li>
<li><a href="#ipaas">iPaaS</a></li>
<li><a href="#maas">MaaS</a></li>
<li><a href="#managed-file-transfer">Managed File Transfer</a></li>
<li><a href="#master-data-management">Master Data Management</a></li>
<li><a href="#messaging">Messaging</a></li>
<li><a href="#rpa">RPA</a></li>
<li><a href="#self-service-integration">Self-Service
Integration</a></li>
<li><a href="#workflow-engine">Workflow engine</a></li>
</ul></li>
<li><a href="#integration-patterns">Integration Patterns</a>
<ul>
<li><a href="#enterprise-integration-patterns">Enterprise Integration
Patterns</a></li>
<li><a href="#integration-architecture-patterns">Integration
Architecture Patterns</a></li>
<li><a href="#microservice-api-patterns">Microservice API
Patterns</a></li>
<li><a href="#soa-patterns">SOA Patterns</a></li>
</ul></li>
<li><a href="#resources">Resources</a>
<ul>
<li><a href="#api-specification">API Specification</a></li>
<li><a href="#articles">Articles</a></li>
<li><a href="#certifications">Certifications</a></li>
<li><a href="#connectors">Connectors</a></li>
<li><a href="#data-formats">Data Formats</a></li>
<li><a href="#integration-styles">Integration Styles</a></li>
<li><a href="#market-analysis">Market Analysis</a></li>
<li><a href="#protocols">Protocols</a></li>
<li><a href="#standard-apis">Standard APIs</a></li>
<li><a href="#structure-and-validation">Structure and
Validation</a></li>
</ul></li>
</ul>
<hr />
<h2 id="projects">Projects</h2>
<h3 id="api-management">API Management</h3>
<p><em>API Management solutions offer a comprehensive approach to
handling the entire API lifecycle. They enable developers to create,
publish, secure, and monitor APIs, ensuring efficient and reliable
communication between systems. With features such as authentication,
rate limiting, and analytics, these tools provide centralized control
and enhanced security, making it easier to manage and scale APIs across
different platforms and environments.</em> - <a
href="https://www.akana.com/products/api-platform">Akana API Management
Platform</a> - A comprehensive platform that accelerates digital
transformation, manages the full API lifecycle, and ensures compliance
while deploying across multiple clouds. - <a
href="https://www.mulesoft.com/platform/api/manager">Anypoint
Platform</a> - A single, unified platform from Mulesoft that combines
API management and integration capabilities, allowing you to design,
build, and manage APIs with ease. - <a
href="https://aws.amazon.com/api-gateway/api-management/">Amazon API
Management</a> - A secure and scalable API management solution that
enables you to monitor and manage APIs in a flexible and efficient way.
- <a
href="https://www.axway.com/en/products/amplify-api-management-platform">Amplify
API Management Platform</a> - An open platform for API management from
Axway, which provides comprehensive API management capabilities and
allows you to build, run, and manage APIs with ease. - <a
href="https://cloud.google.com/apigee">Apigee</a> - A leading API
management solution from Google that provides comprehensive API
management capabilities and helps you create, secure, and scale APIs
with ease. - <a
href="https://azure.microsoft.com/en-us/services/api-management/">Azure
API Management</a> - A hybrid, multicloud management platform for APIs
across all environments, which enables you to manage APIs with ease,
secure them, and gain insights into their performance. - <a
href="https://www.torryharris.com/products/digitmarket-api-manager-for-api-management">DigitMarket
API Manager</a> - A complete package from Torry Harris that helps you
manage your APIs and turn them into tools that can drive your business
forward. - <a
href="https://github.com/gravitee-io/gravitee-api-management">Gravitee.io
API Management (⭐133)</a> - A flexible, lightweight, and open-source
API management solution that provides comprehensive API management
capabilities and helps you manage your APIs with ease. - <a
href="https://www.ibm.com/cloud/api-connect">IBM API Connect</a> - A
complete, intuitive, and scalable API platform that allows you to
create, expose, manage, and monetize APIs across clouds. - <a
href="https://konghq.com/products/kong-enterprise">Kong Enterprise</a> -
A comprehensive service connectivity platform that provides a range of
API management capabilities and allows you to manage APIs,
microservices, and service meshes with ease. - <a
href="https://www.broadcom.com/products/software/api-management">Layer7
API Management</a> - A continuous API management solution from Broadcom
that provides comprehensive API management capabilities and helps you
manage APIs throughout their lifecycle. - <a
href="https://www.redhat.com/en/technologies/jboss-middleware/3scale">Red
Hat 3scale API Management</a> - A cloud-native API management solution
that simplifies the development of APIs and makes them more flexible. -
<a href="https://www.sensedia.com/api-management-platform">Sensedia API
Management</a> - A full lifecycle API management platform that provides
comprehensive API management capabilities and helps you manage APIs
throughout their lifecycle. - <a
href="https://www.tibco.com/products/api-management">TIBCO Cloud
Mashery</a> - A cloud-native API platform from TIBCO that enables you to
deploy APIs anywhere and manage them from everywhere. - <a
href="https://tyk.io/api-lifecycle-management/">Tyk API Management</a> -
A powerful API management solution that allows you to connect, build,
and control APIs with ease. - <a
href="https://www.softwareag.cloud/site/product/webmethods-api.html">webMethods
API</a> - A comprehensive API management solution from Software AG that
provides full lifecycle API management capabilities and enables you to
manage APIs in both on-premises and cloud environments. - <a
href="https://github.com/wso2/product-apim">WSO2 API Manager (⭐801)</a>
- A fully open-source API management platform that provides
comprehensive API management capabilities and allows you to manage APIs
with ease.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### API Design <em>API design, documentation, and
life-cycle automation tools streamline the process of creating,
maintaining, and evolving APIs. These tools offer efficient means to
design consistent and scalable APIs, generate comprehensive
documentation, and automate various stages of the API life-cycle,
enhancing developer experience and promoting API adoption.</em> - <a
href="https://github.com/apiaryio/dredd">Dredd (⭐4.1k)</a> - Validate
API description docs against backend implementation using this
language-agnostic CLI tool. - <a
href="https://github.com/Mermade/openapi-gui">OpenAPI-GUI (⭐1.3k)</a> -
Create and validate OpenAPI specs with ease using this intuitive
graphical user interface. - <a
href="https://github.com/OpenAPITools/openapi-diff">OpenAPI Diff
(⭐743)</a> - Compare OpenAPI specs with version control and visualize
the differences in HTML or Markdown format. - <a
href="https://github.com/OpenAPITools/openapi-generator">OpenAPI
Generator (⭐19k)</a> - Automate the creation of API client libraries,
server stubs, documentation and config files with this powerful OpenAPI
Spec tool. - <a
href="https://github.com/OpenAPITools/openapi-style-validator">OpenAPI
Style Validator (⭐194)</a> - Ensure that your OpenAPI specs meet your
organizations standards with this flexible and customizable style
validator. - <a href="https://github.com/stoplightio/spectral">Spectral
(⭐2.2k)</a> - Detect and fix errors in your JSON/YAML files using this
linter tool that supports OpenAPI 3.0 &amp; 2.0 and AsyncAPI. - <a
href="https://github.com/swagger-api/swagger-editor">Swagger Editor
(⭐8.6k)</a> - Create, describe, and document your API with ease using
this open source editor built specifically for OpenAPI-based APIs. - <a
href="https://github.com/zalando/zally">Zally (⭐874)</a> - Ensure the
quality of your OpenAPI specs with this linter tool that provides
extensive analysis and feedback.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### API Documentation <em>Explore a collection of
tools and platforms designed to create, maintain, and present clear,
concise, and user-friendly documentation for APIs. These resources
facilitate seamless collaboration between developers and enable
effective communication of API functionalities and specifications.</em>
- <a href="https://github.com/DapperDox/dapperdox">DapperDox (⭐392)</a>
- An open-source API documentation generator and server for
OpenAPI/Swagger specifications, with customizable documentation,
automated updates, and easy sharing. - <a
href="https://github.com/Rhosys/openapi-explorer">OpenAPI Explorer
(⭐281)</a> - A tool for generating user interfaces from OpenAPI
specifications, making it easier for software engineers to visualize and
interact with APIs. - <a
href="https://github.com/rapi-doc/RapiDoc">RapiDoc (⭐1.5k)</a> - A tool
that generates customizable, interactive API documentation from OpenAPI
Specification, with a range of design options. - <a
href="https://github.com/Redocly/redoc">Redoc (⭐22k)</a> - An
open-source tool for generating documentation from OpenAPI (fka Swagger)
definitions, with customizable themes, language support, and branding. -
<a href="https://github.com/slatedocs/slate">Slate (⭐35k)</a> - A
powerful tool that creates static API documentation from markdown, with
API reference docs and code samples. - <a
href="https://github.com/stoplightio/elements">Stoplight Elements
(⭐1.4k)</a> - Beautiful API documentation powered by OpenAPI and
Markdown. Use these UI components to create API reference documentation,
or more complete documentation with Markdown articles covering
tutorials, how-to guides, etc. - <a
href="https://swagger.io/tools/swaggerhub/">SwaggerHub</a> - An
integrated API design and documentation platform built for teams, with
versioning, testing automation, and integration with popular API tools.
- <a href="https://github.com/swagger-api/swagger-ui">Swagger UI
(⭐25k)</a> - An intuitive tool for exploring and interacting with APIs,
with API specification visualization, endpoint exploration, and built-in
interactive console. - <a
href="https://github.com/anvilco/spectaql">SpectaQL (⭐1k)</a> - A
Node.js library that generates static documentation for a GraphQL schema
from various sources, including live endpoint, query result, and SDL
files.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### API Gateway <em>API Gateways act as
intermediaries between client applications and backend services,
enabling key features such as request routing, authentication, rate
limiting, and caching. They simplify the process of managing, securing,
and monitoring APIs by providing a unified entry point for various
services.</em> - <a href="https://github.com/eolinker/goku">Apinto
(⭐1.2k)</a> - A Golang-based microservice gateway that provides dynamic
routing, service orchestration, multi-tenancy management, and API access
control. - <a
href="https://www.getambassador.io/products/edge-stack/api-gateway/">Ambassador
Edge Stack</a> - A Kubernetes-native API Gateway that helps manage APIs
at scale with its customizable routing, authentication, and
rate-limiting features. - <a
href="https://github.com/apache/apisix">Apache APISIX (⭐13k)</a> - A
dynamic, real-time, and high-performance API Gateway that leverages
Apache plugins for enhanced functionality. - <a
href="https://github.com/solo-io/gloo">Gloo Edge (⭐3.9k)</a> - An Envoy
Proxy-based API Gateway that provides advanced traffic management,
security, and observability features for modern microservices
architectures. - <a href="https://github.com/Kong/kong">Kong API Gateway
(⭐37k)</a> - A cloud-native, platform-agnostic, and scalable API
Gateway that supports plugins for easy integration with third-party
services. - <a href="https://github.com/devopsfaith/krakend-ce">KrakenD
API Gateway (⭐1.7k)</a> - An ultra-high performance API Gateway that
leverages middlewares for fast and efficient API management. - <a
href="https://github.com/ThreeMammals/Ocelot">Ocelot (⭐8.1k)</a> - A
.NET API Gateway that provides a simple and elegant way to manage APIs
with its intuitive routing and middleware configuration. - <a
href="https://github.com/spring-cloud/spring-cloud-gateway">Spring Cloud
Gateway (⭐4.3k)</a> - An API Gateway built on top of the Spring
ecosystem, providing advanced routing and filtering features for Spring
applications. - <a href="https://github.com/traefik/traefik">Traefik
(⭐47k)</a> - A modern, open-source API Gateway that is designed to
handle dynamic container environments such as Kubernetes, Docker Swarm,
and Mesos. It provides load balancing, SSL/TLS termination, rate
limiting, circuit breaking, and more. - <a
href="https://github.com/TykTechnologies/tyk">Tyk API Gateway
(⭐9.2k)</a> - An open source Enterprise API Gateway that supports REST,
GraphQL, TCP, and gRPC protocols. It provides advanced API management
features such as rate limiting, access control, and analytics.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### API Testing <em>The API testing tools section
provides a list of software tools and frameworks that developers can use
to test REST APIs and message brokers. This section includes GUI clients
for testing REST APIs and message brokers, mocking tools for simulating
API responses, as well as various testing tools and frameworks to
automate testing processes.</em> - API clients - <a
href="https://github.com/advanced-rest-client/arc-electron">Advanced
REST Client (⭐1.3k)</a> - An open-source API tool designed for testing
and debugging RESTful web services. - <a
href="https://github.com/curl/curl">curl (⭐34k)</a> - Command-line tool
for transferring data with URLs over various protocols. - <a
href="https://github.com/rs/curlie">curlie (⭐2.6k)</a> - Frontend to
curl with the ease of use of httpie without compromising on performance
and features. - <a href="https://github.com/httpie/httpie">HTTPie
(⭐31k)</a> - User-friendly command-line HTTP client that simplifies
HTTP request/response inspection and manipulation. - <a
href="https://github.com/Kong/insomnia">Insomnia (⭐33k)</a> -
Cross-platform HTTP and GraphQL client designed to make API testing and
debugging easier. - <a
href="https://www.postman.com/product/api-client/">Postman</a> -
Comprehensive tool for simplifying API development and testing processes
with features such as making HTTP requests, generating mock servers, and
creating API documentation. - <a
href="https://github.com/micha/resty">resty (⭐2.6k)</a> - A Lua
framework for building HTTP clients that provides a shell interface for
interacting with REST services. - <a
href="https://github.com/SmartBear/soapui">SoapUI (⭐1.4k)</a> -
Open-source web service testing application designed for testing SOAP
and REST web services. - MQ clients - <a
href="https://github.com/jmstoolbox/jmstoolbox">JMSToolBox (⭐190)</a> -
Universal JMS client designed to interact with a wide range of JMS-based
message brokers. - <a href="https://github.com/edenhill/kcat">kcat
(⭐5.2k)</a> - Generic non-JVM producer and consumer for Apache Kafka,
functioning as a netcat for Kafka. - <a
href="https://github.com/thomasnordquist/MQTT-Explorer">MQTT Explorer
(⭐2.7k)</a> - All-round MQTT client with a structured topic overview,
suitable for debugging and testing MQTT-based systems. - <a
href="https://www.kafkatool.com">Offset Explorer</a> - GUI application
for managing and using Apache Kafka clusters, formerly known as Kafka
Tool. - <a
href="https://github.com/paolosalvatori/ServiceBusExplorer">Service Bus
Explorer (⭐1.9k)</a> - GUI app for Azure Service Bus, offering advanced
features like import/export functionality and the ability to test topic,
queues, subscriptions, relay services, notification hubs, and events
hubs. - Mocking tools - <a
href="https://github.com/outofcoffee/imposter">Imposter (⭐341)</a> -
Mock server for REST APIs, OpenAPI (and Swagger) specifications, SOAP
web services (and WSDL files), Salesforce and HBase APIs. - <a
href="https://github.com/microcks/microcks">Microcks (⭐1.1k)</a> -
Open-source Kubernetes-native tool for API mocking and testing,
supporting AsyncAPI, OpenAPI, Postman Collections, etc. - <a
href="https://www.mockable.io/">Mockable</a> - Simple configurable
service to mock out RESTful API or SOAP web-services. - <a
href="https://github.com/mockoon/mockoon">Mockoon (⭐5.8k)</a> -
Easy-to-use tool for designing and running mock REST APIs. - <a
href="https://github.com/mock-server/mockserver">MockServer (⭐4.4k)</a>
- Easy mocking of any system you integrate with via HTTP or HTTPS. - <a
href="https://github.com/MockyAbstract/Mocky">Mocky (⭐2k)</a> - Free
and unlimited online service for generating custom HTTP responses. - <a
href="https://github.com/stoplightio/prism">Prism (⭐3.9k)</a> -
Open-source HTTP mock server that can mimic your APIs behavior as if
you already built it. - <a
href="https://github.com/tomakehurst/wiremock">WireMock (⭐6k)</a> -
Mock your APIs for fast, robust, and comprehensive testing. - Testing
tools and frameworks - <a href="https://github.com/apache/jmeter">Apache
JMeter (⭐7.9k)</a> - Open-source Java-based load testing tool that can
be used to test the performance and scalability of web applications,
databases, and other network services. - <a
href="https://github.com/gatling/gatling">Gatling (⭐6.2k)</a> - An
open-source load testing tool that allows users to write and run load
tests as code, providing detailed performance reports to optimize system
performance. - <a href="https://github.com/intuit/karate">Karate
(⭐7.8k)</a> - Open-source tool that combines API test-automation,
mocks, performance-testing, and even UI automation into a single,
unified framework. - <a
href="https://github.com/svanoort/pyresttest">Pyresttest (⭐1.1k)</a> -
Java DSL for easy testing of REST services. - <a
href="https://github.com/rest-assured/rest-assured">REST Assured
(⭐6.7k)</a> - Java DSL for easy testing of REST services. - <a
href="https://github.com/schemathesis/schemathesis">Schemathesis
(⭐2k)</a> - Python library for property-based testing of API schemas. -
<a href="https://github.com/Blazemeter/taurus">Taurus (⭐1.9k)</a> - An
open-source framework for continuous testing that simplifies test
execution and management through a user-friendly interface and
integrates with various testing tools and frameworks.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### BRE <em>Business Rules Engines and Business Rules
Management Systems (BRMS) are software systems that allow organizations
to define, manage, and execute business rules. These rules are used to
automate decision-making processes, enforce business policies, and
ensure regulatory compliance. A BRMS provides a way for organizations to
centrally manage their business rules and make changes to them quickly
and easily, without requiring changes to the underlying code. It is a
valuable tool for businesses that need to be agile and respond quickly
to changing market conditions.</em> - <a
href="https://github.com/apache/incubator-kie-drools">Drools
(⭐5.6k)</a> - Open-source tool that supports Decision Model and
Notation (DMN) models at Conformance level 3 with an Eclipse IDE plugin
for core development. - <a
href="https://github.com/j-easy/easy-rules">Easy Rules (⭐4.7k)</a> -
Simple Java rules engine for straightforward rule processing. - <a
href="https://github.com/ddossot/NxBRE">NxBRE (⭐129)</a> - Open-source
rule engine specifically designed for the .NET platform. - <a
href="https://github.com/openl-tablets/openl-tablets">OpenL Tablets
(⭐143)</a> - Open-source business rules engine (BRE, BRMS) and decision
management system that allows users to define, manage, and execute
business rules and decision tables.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### BPM <em>BPM solutions are software tools that
help businesses streamline and automate their operational processes to
improve efficiency and productivity. These solutions typically provide
features such as process modeling, workflow management, task automation,
and reporting. They can be used to automate a wide range of processes,
from simple tasks like data entry to complex workflows involving
multiple departments and stakeholders.</em> - <a
href="https://appian.com/platform/complete-automation/business-process-management-bpm.html">Appian
BPM Suite</a> - A platform that combines low-code development with
process management, allowing both IT and citizen developers to construct
process-centric and case-centric applications. - <a
href="https://www.genpact.com/cora/sequence">Genpack Cora SeQuence</a> -
A tool for orchestrating business processes, driving business agility
and improving cost efficiency. - <a
href="https://www.ibm.com/products/business-automation-workflow">IBM
Business Automation Workflow</a> - A comprehensive business process
management platform for developing and administering business
applications. - <a
href="https://www.oracle.com/middleware/technologies/bpm.html">Oracle
BPM Suite</a> - An integrated environment for developing, administering,
and using business applications that are centered around business
processes. - <a href="https://www.pega.com/products/platform">Pega
Platform</a> - A platform for business process management and robotic
process automation (RPA) with advanced workforce analytics. - <a
href="https://www.redhat.com/en/technologies/jboss-middleware/process-automation-manager">Red
Hat Process Automation Manager</a> - Application development platform
that enables developers and business experts to create cloud-native
applications that automate business operations. - <a
href="https://www.sap.com/products/process-orchestration.html">SAP
Process Orchestration</a> - A business process management offering and
application infrastructure. - <a
href="https://www.tibco.com/products/business-process-management">TIBCO
BPM Enterprise</a> - Business process management platform that offers
capabilities for process automation, documentation, human capital
management, process patterns, and predictive operations analytics.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Data Mapping Solution <em>Data Mapping tools are
used to define and transform data between different systems,
applications, and formats. These tools allow for the mapping of data
from source to target, allowing for data transformation and integration.
This section covers different data mapping solutions that can be used to
facilitate data mapping and transformation processes for different use
cases.</em> - <a href="https://github.com/atlasmap/atlasmap">AltasMap
(⭐179)</a> - A web-based data mapping solution that simplifies
integration between Java, XML, CSV, and JSON data sources. Its
interactive user interface makes configuring integrations easy. - <a
href="https://www.altova.com/mapforce">Altova MapForce</a> - A graphical
data mapping tool that can handle any-to-any conversion and integration
tasks. It simplifies complex mapping tasks, enabling software engineers
to complete projects faster. - <a
href="https://github.com/bazaarvoice/jolt">JOLT (⭐1.4k)</a> - A
Java-based JSON-to-JSON transformation library that uses a JSON document
as the “specification” for the transform. JOLT provides a simple way for
software engineers to transform JSON data. - <a
href="https://github.com/schibsted/jslt">JSLT (⭐604)</a> - A complete
query and transformation language for JSON that is inspired by jq,
XPath, and XQuery. With JSLT, software engineers can quickly and easily
transform JSON data to meet their needs.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### ESB <em>Enterprise Service Bus (ESB) solutions
facilitate the integration of disparate systems and applications by
providing a communication layer that allows them to exchange
information. ESBs offer a range of capabilities such as message routing,
transformation, protocol conversion, and data mediation. They typically
support various messaging patterns and communication protocols and
provide a centralized platform for managing and monitoring message
traffic.</em> - <a
href="https://www.mulesoft.com/platform/enterprise-integration">Anypoint
Platform</a> - A comprehensive API management and integration platform
that simplifies connecting applications from Mulesoft. - <a
href="https://servicemix.apache.org/">Apache ServiceMix</a> - An
open-source integration container that combines the functionality of
Apache ActiveMQ, Camel, CXF, and Karaf, providing a flexible solution. -
<a href="https://www.arcesb.com/integration/">ArcESB</a> - A versatile
integration platform that seamlessly synchronizes data across
applications, integrates with partners, and provides data accessibility.
- <a href="https://www.ibm.com/cloud/app-connect">IBM App Connect</a> -
An integration platform that can connect applications, irrespective of
the message formats or protocols they use, formerly known as IBM
Integration Bus. - <a
href="https://github.com/Particular/NServiceBus">NServiceBus (⭐2k)</a>
- A .NET-based service bus that offers an intuitive developer-friendly
environment. - <a
href="https://www.oracle.com/middleware/technologies/service-bus.html">Oracle
Service Bus</a> - An integration platform that connects, virtualizes,
and manages interactions between services and applications. - <a
href="https://www.oracle.com/middleware/technologies/soasuite.html">Oracle
SOA Suite</a> - A platform that enables system developers to set up and
manage services and to orchestrate them into composite applications and
business processes. - <a
href="https://developers.redhat.com/products/fuse/overview">Red Hat
Fuse</a> - A cloud-native integration platform that supports distributed
integration capabilities. - <a
href="https://www.softwareag.com/en_corporate/platform/integration-apis/webmethods-integration.html">Software
AG webMethods Integration Server</a> - An integration platform that
enables faster integration of any application. - <a
href="https://www.tibco.com/products/tibco-businessworks">TIBCO
BusinessWorks</a> - A platform that implements enterprise patterns for
hybrid integrations. - <a
href="https://www.adroitlogic.com/products/ultraesb/">UltraESB</a> - An
ESB that supports zero-copy proxying for extreme performance utilizing
Direct Memory Access and Non-Blocking IO. - <a
href="https://github.com/wso2/product-ei">WSO2 Enterprise Integrator
(⭐362)</a> - An API-centric, cloud-native, and distributed integration
platform designed to provide a robust solution for software
engineers.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### ETL <em>ETL (Extract, Transform, Load) and ELT
(Extract, Load, Transform) are processes used to integrate and
consolidate data from multiple sources. This section covers a range of
open source and commercial tools for performing these tasks, including
data ingestion, transformation, and loading into data warehouses or
other data storage systems.</em> - <a
href="https://github.com/apache/nifi">Apache NiFi (⭐4.3k)</a> - An
automated data integration platform that efficiently moves data between
disparate systems. - <a href="http://www.cloveretl.com/">CloverETL</a> -
A comprehensive data integration software suite, ideal for data
migration, warehousing, and feeding data into BI and reporting apps. -
<a href="https://hevodata.com/">Hevo</a> - A fully automated, no-code
data pipeline platform supporting 150+ integrations across databases,
SaaS apps, cloud storage, SDKs, and streaming services. - <a
href="https://www.ibm.com/products/datastage">IBM DataStage</a> - A
powerful data integration platform that helps businesses understand,
cleanse, transform, and deliver trusted information. - <a
href="https://www.informatica.com/products/data-integration/powercenter.html">Informatica
PowerCenter</a> - A trusted enterprise data integration and management
software powering analytics for big data and cloud. - <a
href="https://docs.microsoft.com/en-us/sql/integration-services/sql-server-integration-services">Microsoft
SSIS</a> - A reliable platform for building enterprise-level data
integration and transformation solutions. - <a
href="https://www.oracle.com/middleware/technologies/data-integrator.html">Oracle
Data Integrator</a> - A comprehensive data integration platform that
covers all data integration requirements, including batch loads,
integration processes, and SOA-enabled data services. - <a
href="https://github.com/pentaho/pentaho-kettle">Pentaho Data
Integration (⭐7.3k)</a> - A user-friendly platform that enables users
to ingest, blend, cleanse, and prepare diverse data from any source with
visual tools, eliminating the need for coding and complexity. - <a
href="https://www.sas.com/en_us/software/data-management.html">SAS Data
Management</a> - A robust platform that helps transform, integrate,
govern, and secure data while improving its overall quality and
reliability. - <a href="https://www.stitchdata.com/">Stitch</a> - A
simple yet powerful ETL service that integrates data from dozens of
different sources, ideal for businesses of all sizes. - <a
href="https://www.talend.com/products/integrate-data/">Talend Data
Integration</a> - A versatile platform that brings data together from
multiple sources to power all your business decisions.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Integration Frameworks <em>The Integration
frameworks section includes software tools and libraries that help
developers implement and manage integration patterns in their
applications. These frameworks are based on well-established Enterprise
Integration Patterns (EIPs), which provide a standard vocabulary and
architecture for designing and implementing integration solutions. The
frameworks in this section can help simplify the process of integrating
different systems, applications, and data sources by providing pre-built
connectors, message routing, and transformation capabilities.</em> - <a
href="https://github.com/apache/camel">Apache Camel (⭐5.3k)</a> - A
powerful integration framework that uses Enterprise Integration Patterns
to connect and unify different transport APIs. - <a
href="https://github.com/ballerina-platform/ballerina-lang">Ballerina
(⭐3.5k)</a> - An open-source programming language that simplifies the
creation, usage, and combination of network services. - <a
href="https://github.com/frankframework/frankframework">Frank!Framework
(⭐110)</a> - A Low-Code Java-based messaging framework to connect your
system and application data, that is completely configurable through XML
configurations. - <a
href="https://github.com/spring-projects/spring-integration">Spring
Integration (⭐1.5k)</a> - An extension of the Spring programming model
that supports Enterprise Integration Patterns, allowing for streamlined
integration of various systems.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### iPaaS <em>Integration Platform as a Service
(iPaaS) is a cloud-based platform that enables businesses to integrate
different systems, applications, and data sources with ease. It provides
a unified platform for managing data flows between various systems,
simplifying the process of integrating different systems and automating
workflows. iPaaS tools typically provide a visual interface for
designing, deploying, and managing integrations, as well as pre-built
connectors and APIs for integrating with popular systems and
services.</em> - <a
href="https://www.mulesoft.com/platform/saas/cloudhub-ipaas-cloud-based-integration">Anypoint
Platform</a> - A powerful integration platform that combines API
management and integration capabilities in a single platform, enabling
software engineers to integrate various applications with ease. - <a
href="https://boomi.com/platform">Boomi AtomSphere</a> - A cloud-native,
unified, open, and intelligent platform that connects everything and
everyone, allowing software engineers to create and manage integrations
easily. - <a href="https://www.jitterbit.com/platform/ipaas">Jitterbit
Harmony</a> - A comprehensive integration platform that provides
pre-built templates and workflows to automate business processes. It
integrates thousands of applications and simplifies integration for
software engineers. - <a
href="https://www.ibm.com/cloud/integration">IBM Cloud Integration</a> -
A next-generation integration platform that uses AI to provide software
engineers with an innovative approach to integration. This platform
accelerates integration processes, making it faster and more scalable. -
<a
href="https://www.informatica.com/products/cloud-integration.html">Informatica
Intelligent Cloud Services</a> - A suite of cloud data management
products designed to accelerate productivity and improve speed and
scale. Software engineers can use this platform to manage data and
integrate applications efficiently. - <a
href="https://businessnetwork.opentext.com/enterprise-data-management/">OpenText
Alloy</a> - A powerful enterprise data management platform that empowers
organizations to move beyond basic integration and turn data into
insights and action. Software engineers can use this platform to manage
data and improve business outcomes. - <a
href="https://www.oracle.com/integration/application-integration/">Oracle
Integration Cloud Service</a> - A robust platform that accelerates time
to go live with pre-built connectivity to any SaaS or on-premises
application. Software engineers can use this platform to simplify
integration processes and streamline operations. - <a
href="https://www.snaplogic.com/products/intelligent-integration-platform">SnapLogic
Intelligent Integration Platform</a> - A comprehensive integration
platform that connects various applications and data landscapes.
Software engineers can use this platform to integrate data and
applications quickly and efficiently. - <a
href="https://www.softwareag.com/en_corporate/platform/integration-apis/application-integration.html">Software
AG webMethods Hybrid Integration Platform</a> - An all-in-one
integration platform that enables software engineers to integrate all
their applications in a single platform. This platform simplifies
integration processes and improves efficiency. - <a
href="https://www.tibco.com/products/cloud-integration">TIBCO Cloud
Integration</a> - A flexible platform that enables software engineers to
integrate anything with API-led and event-driven integration. This
platform empowers everyone to integrate anything, making integration
processes faster and more efficient. - <a
href="https://www.workato.com/">Workato</a> - A single platform for
integration and workflow automation across your organization, providing
software engineers with a powerful platform for simplifying integration
processes and streamlining operations.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### MaaS <em>Cloud Messaging as a Service (MaaS)
refers to cloud-based messaging platforms that enable reliable, secure,
and scalable communication between distributed applications and
services. These platforms provide various messaging patterns such as
publish-subscribe, request-reply, and streaming. They also offer
features such as message routing, filtering, transformation, and
persistence, and support various protocols and APIs for integration with
different systems.</em> - <a
href="https://aws.amazon.com/amazon-mq">Amazon MQ</a> - A fully managed
message broker service that supports Apache ActiveMQ and RabbitMQ. It
provides a reliable, secure, and scalable messaging infrastructure for
your applications. - <a href="https://aws.amazon.com/msk">Amazon MSK</a>
- A fully managed service for Apache Kafka that simplifies the setup,
scaling, and management of Kafka clusters. It provides a highly
available, durable, and performant messaging service for your data
streaming needs. - <a href="https://aws.amazon.com/sqs">Amazon SQS</a> -
A fully managed message queuing service that enables you to decouple and
scale microservices, distributed systems, and serverless applications.
It offers a reliable, secure, and highly available message storage and
delivery system. - <a href="https://aws.amazon.com/sns">Amazon SNS</a> -
A fully managed pub/sub messaging service that enables you to send and
receive messages between distributed systems, microservices, and
event-driven serverless applications. It offers a flexible, scalable,
and cost-effective way to notify subscribers of events and messages. -
<a href="https://www.alibabacloud.com/product/kafka">Alibaba Cloud
Message Queue for Apache Kafka</a> - A fully managed Apache Kafka
service that provides high-throughput, low-latency, and highly available
message streaming for your applications. It offers easy integration with
other Alibaba Cloud services and seamless data migration. - <a
href="https://www.alibabacloud.com/product/rabbitmq">Alibaba Cloud
Message Queue for RabbitMQ</a> - A distributed and fully managed
messaging service that provides high scalability, low latency, and high
throughput for your applications. It offers flexible deployment options,
easy management, and robust security features. - <a
href="https://www.alibabacloud.com/product/message-service">Alibaba
Cloud Message Service</a> - A distributed messaging and notification
service that enables concurrent operations and message transfer between
applications and decoupled systems. It offers high reliability,
scalability, and fault tolerance for your messaging needs. - <a
href="https://www.alibabacloud.com/product/mq">AlibabaMQ for Apache
RocketMQ</a> - A distributed message queue service that supports
reliable message-based asynchronous communication among microservices,
distributed systems, and serverless applications. It provides high
availability, scalability, and durability for your message streaming
needs. - <a
href="https://www.mulesoft.com/platform/anypoint-mq-message-queue">Anypoint
MQ</a> - An enterprise-class cloud messaging service that is fully
integrated with Anypoint Platform. It offers a flexible and reliable
messaging infrastructure that enables you to integrate and orchestrate
your applications and systems. - <a
href="https://azure.microsoft.com/en-us/services/service-bus/">Azure
Service Bus</a> - A reliable cloud messaging service that offers a
variety of messaging patterns, such as pub/sub and request/response, and
supports a range of protocols and standards. - <a
href="https://www.cloudamqp.com/">CloudAMQP</a> - A RabbitMQ as a
Service that provides a fully managed and scalable message broker
service for your applications. It offers a simple and easy-to-use
web-based management console, advanced monitoring and analytics, and
seamless integration with other cloud services. - <a
href="https://www.cloudkarafka.com/">CloudKarafka</a> - An affordable
and straightforward Kafka service that provides fully managed and
scalable Kafka clusters on AWS and Google Cloud. It offers a
user-friendly web-based dashboard, advanced security features, and
seamless integration with other cloud services. - <a
href="https://cloud.google.com/pubsub">Google Cloud Pub/Sub</a> - A
messaging and ingestion service that enables event-driven systems and
streaming analytics. It provides high throughput, low latency, and
reliable message delivery for your applications. It supports flexible
messaging patterns, such as pub/sub and push/pull, and integrates
seamlessly with other Google Cloud services. - <a
href="https://www.huaweicloud.com/intl/en-us/product/dms.html">Huawei
Cloud Distributed Message Service</a> - A fully managed and
high-performance message queuing service that enables reliable,
flexible, and asynchronous communication between distributed
applications. It offers high scalability, security, and durability, and
supports a variety of messaging patterns and protocols. - <a
href="https://www.huaweicloud.com/intl/en-us/product/dmskafka.html">Huawei
Cloud Distributed Message Service for Kafka</a> - A managed Apache Kafka
service that provides easy setup, scaling, and management of Kafka
clusters. It offers high availability, performance, and security, and
integrates seamlessly with other Huawei Cloud services. - <a
href="https://www.ibm.com/cloud/mq">IBM MQ on Cloud</a> - A cloud-based
messaging service that enables seamless data transfer across enterprise
applications, systems, and services with ease. - <a
href="https://www.iron.io/mq">IronMQ</a> - An elastic message queue
built specifically for the cloud, allowing for reliable and scalable
message processing. - <a
href="https://www.oracle.com/cloud/cloud-native/streaming/">Oracle Cloud
Streaming</a> - A serverless, real-time event streaming platform with
Apache Kafka compatibility, delivering highly performant and
cost-effective data processing. - <a
href="https://solace.com/products/platform/cloud/">Solace PubSub+
Cloud</a> - An all-in-one event streaming, management, and insights
platform, providing complete visibility and control over your data
pipeline. - <a
href="https://cloud.yandex.com/en/services/message-queue">Yandex Message
Queue</a> - A cloud messaging service with compatibility to Amazon SQS
HTTP API, making it easy to integrate with existing systems and
services. - <a
href="https://cloud.yandex.com/en/services/managed-kafka">Yandex Managed
Service for Apache Kafka</a> - A fully-managed Apache Kafka service with
automated scaling, monitoring, and maintenance, providing hassle-free
data streaming.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Managed File Transfer <em>Managed File Transfer
(MFT) solutions provide secure and reliable file transfer capabilities
that help organizations meet regulatory compliance requirements, improve
operational efficiency, and reduce the risk of data breaches. MFT
software typically includes features such as encryption, digital
signatures, user access controls, and detailed audit logs to ensure that
data is transmitted securely and can be tracked throughout the transfer
process.</em> - <a href="https://www.arcesb.com/mft/">ArcESB Managed
File Transfer</a> - A comprehensive solution for enterprises seeking to
streamline file transfer processes. Its user-friendly interface and
powerful capabilities provide an all-in-one MFT solution that can
efficiently handle file transfers. - <a
href="https://www.axway.com/en/products/managed-file-transfer">Axway
Managed File Transfer</a> - Designed to simplify file transfer services
for businesses, this MFT solution offers advanced features and security
measures to ensure secure and reliable data transfer. - <a
href="https://southrivertech.com/titan-mft-server/">Titan MFT Server</a>
- An enterprise-level MFT server solution with high availability and
failover capabilities, providing an efficient way to automate and manage
large-scale file transfers. - <a
href="https://www.ibm.com/products/secure-file-transfer">IBM Sterling
Secure File Transfer</a> - A fast and scalable file transfer platform
that offers advanced security features and flexible architecture. It is
ideal for businesses that require a reliable and secure MFT platform. -
<a
href="https://www.oracle.com/middleware/technologies/mft/managed-file-transfer.html">Oracle
Managed File Transfer</a> - A comprehensive MFT solution that enables
secure file exchange and management, providing a reliable and efficient
way for businesses to transfer data with ease. - <a
href="https://www.tibco.com/products/tibco-managed-file-transfer">TIBCO
Managed File Transfer</a> - A centrally managed MFT platform with
powerful automation capabilities and advanced security features, capable
of supporting all file transfer use cases. It is an ideal choice for
businesses that require a comprehensive MFT solution.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Master Data Management <em>Master Data Management
solutions help organizations create a single, authoritative source of
accurate and consistent data across different systems, applications, and
departments. These tools provide capabilities for data profiling,
cleansing, enrichment, and governance, enabling organizations to improve
data quality, reduce errors, and increase operational efficiency.</em> -
<a
href="https://www.ibm.com/products/ibm-infosphere-master-data-management">IBM
InfoSphere Master Data Management</a> - A comprehensive solution for
managing master data that provides a single source of truth across your
organization. - <a
href="https://www.informatica.com/products/master-data-management/multidomain-mdm.html">Informatica
Multidomain MDM</a> - An all-in-one solution that enables you to manage
and govern all your master data domains in one place. - <a
href="https://www.oracle.com/performance-management/enterprise-data-management/">Oracle
Enterprise Data Management</a> - Helps you adapt and respond to change
faster and more effectively by centralizing and managing your master
data. - <a
href="https://www.sap.com/products/master-data-governance.html">SAP
Master Data Governance</a> - Streamlines and improves the quality and
consistency of your data by consolidating and centrally governing your
master data lifecycle. - <a
href="https://support.sas.com/en/software/mdm-support.html">SAS MDM</a>
- Provides a unified view of your corporate data, integrating
information from various sources into one master record for greater
accuracy and consistency. - <a
href="https://www.softwareag.com/resources/Master-data-management">Software
AG OneData for MDM</a> - Ensures that only reliable, accurate, and
approved information flows through your systems, processes, and
applications, providing “one version of the truth.” - <a
href="https://www.teradata.co.uk/Products/Applications/Master-Data-Management">Teradata
MDM</a> - Establishes an accurate analytical data foundation by using
consistent reference data, driving significant ROI. - <a
href="https://www.tibco.com/products/tibco-ebx-software">TIBCO EBX</a> -
A single solution to govern, manage, and consume all shared data assets,
ensuring greater consistency and accuracy across your organization.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Messaging <em>Message brokers are a type of
middleware that allows communication between different applications or
systems by facilitating the exchange of messages. They can handle
different messaging patterns, such as point-to-point, publish-subscribe,
and request-reply, and provide features such as message transformation,
routing, and filtering.</em> - <a
href="https://github.com/apache/activemq">Apache ActiveMQ (⭐2.2k)</a> -
An open-source message broker that implements Java Message Service (JMS)
and allows for synchronous to asynchronous communication conversion.
Offers reliable messaging and supports multiple protocols and messaging
styles. - <a href="https://github.com/apache/kafka">Apache Kafka
(⭐27k)</a> - A distributed messaging system designed for
high-throughput and fault-tolerance. Enables real-time data processing
and stream processing applications with its distributed architecture and
efficient data storage. - <a
href="https://github.com/apache/pulsar">Apache Pulsar (⭐13k)</a> - A
distributed pub/sub-messaging system that supports both traditional
messaging and streaming use cases. Offers a scalable and flexible
architecture and supports multiple messaging protocols. - <a
href="https://github.com/apache/rocketmq">Apache RocketMQ (⭐20k)</a> -
A fast and reliable distributed messaging platform designed for high
volume and low latency messaging scenarios. Offers efficient message
storage and retrieval and supports various messaging patterns. - <a
href="https://github.com/apache/qpid-broker-j">Apache Qpid (⭐55)</a> -
A messaging tool that supports the Advanced Message Queuing Protocol
(AMQP) and multiple programming languages and platforms. Offers
enterprise-grade messaging capabilities with reliable and efficient
message delivery. - <a
href="https://github.com/bloomberg/blazingmq">BlazingMQ (⭐2.4k)</a> - A
distributed message queueing platform with a focus on efficiency,
reliability, and a rich feature set for modern-day workflows. - <a
href="https://github.com/centrifugal/centrifugo">Centrifugo (⭐7.8k)</a>
- An open-source, scalable real-time messaging server that allows you to
build interactive applications where events are delivered to online
users with minimal delay. - <a
href="https://github.com/eclipse/mosquitto">Eclipse Mosquitto
(⭐8.3k)</a> - A lightweight open-source message broker that implements
the MQTT protocol. Designed for low-power devices and supports message
encryption and authentication. - <a
href="https://github.com/emqx/emqx">EMQX (⭐13k)</a> - A
high-performance, scalable, and reliable open-source MQTT broker for
IoT, IIoT, and connected vehicles. - <a
href="https://www.ibm.com/products/mq">IBM MQ</a> - A robust
enterprise-grade messaging system that enables safe and efficient
communication between applications. Offers high availability and
disaster recovery capabilities and supports multiple messaging
protocols. - <a href="https://kubemq.io/">KubeMQ</a> - A
Kubernetes-based message broker and queue system designed for
scalability, high availability, and security. Offers seamless
integration with Kubernetes and supports various messaging patterns. -
<a href="https://github.com/nats-io/gnatsd">NATS (⭐14k)</a> - A
lightweight and high-performance messaging system designed for
microservices, IoT, and cloud-native systems. Offers efficient and
reliable message delivery and supports multiple messaging protocols. -
<a
href="https://www.oracle.com/database/technologies/advanced-queuing.html">Oracle
AQ</a> - A messaging system that provides enterprise message
functionality and is widely used within the Oracle database. Offers
reliable and efficient message delivery and supports multiple messaging
styles. - <a href="https://github.com/rabbitmq/rabbitmq-server">RabbitMQ
(⭐11k)</a> - An open-source message broker that implements AMQP and
supports multiple messaging protocols and patterns. Offers reliable and
efficient message delivery and supports clustering and high
availability. - <a
href="https://github.com/vectorizedio/redpanda">Redpanda (⭐8.7k)</a> -
A streaming platform that is Kafka-compatible and does not require
Zookeeper or JVM. Offers high-performance and low-latency messaging and
supports stream processing and analytics. - <a
href="https://www.redhat.com/en/technologies/jboss-middleware/amq">Red
Hat AMQ</a> - A messaging system based on open-source communities like
Apache ActiveMQ and Apache Kafka. Offers enterprise-grade messaging
capabilities with reliable and efficient message delivery. - <a
href="https://www.tibco.com/products/tibco-enterprise-message-service">TIBCO
Enterprise Message Service</a> - A standards-based JMS implementation
that allows for easy exchange of messages between applications. Offers
reliable and efficient message delivery and supports various messaging
protocols and patterns. - <a
href="https://github.com/vernemq/vernemq">VerneMQ (⭐3.1k)</a> - A
high-performance distributed MQTT message broker designed for
scalability and reliability. Offers efficient and reliable message
delivery and supports multiple messaging protocols and patterns.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### RPA <em>Robotic Process Automation (RPA)
solutions are software tools that automate repetitive, rule-based tasks
within business processes. RPA bots can perform tasks such as data
entry, data extraction, and data processing with accuracy and speed,
freeing up human workers to focus on more complex tasks.</em> - <a
href="https://www.automationanywhere.com/">Automation Anywhere</a> - An
intelligent automation ecosystem that provides Robotic Process
Automation (RPA) solutions. This solution is designed to automate
business processes and improve operational efficiency while reducing
errors and costs. - <a
href="https://www.blueprism.com/products/intelligent-rpa-automation/">Blue
Prism</a> - A no-code automation RPA platform that offers intelligent
automation capabilities for businesses. This platform is designed to
reduce operational costs and improve productivity by automating
repetitive digital tasks. - <a
href="https://www.uipath.com/product">UiPath</a> - A platform that
provides RPA solutions for automating repetitive digital tasks typically
performed by people. This solution offers a comprehensive automation
platform that enables businesses to automate their processes and
increase efficiency. - <a
href="https://www.workfusion.com/platform/">WorkFusion</a> - An
automation platform for the enterprise that offers RPA solutions. This
platform is designed to automate manual tasks, reduce errors and improve
efficiency. It offers a comprehensive set of tools for automating
workflows and streamlining operations.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Self-Service Integration <em>Self-service and
citizen integrator tools are designed to enable non-technical users to
build integrations without the need for extensive programming knowledge.
These tools typically feature drag-and-drop interfaces and pre-built
connectors for popular applications and services.</em></p>
<ul>
<li><a href="https://ifttt.com/">IFTTT</a> - A powerful self-service and
citizen integrator tool that enables users to create custom workflows by
connecting multiple web services with conditional statements, boosting
productivity with ease.</li>
<li><a href="https://powerautomate.microsoft.com">Microsoft Power
Automate</a> - This cloud-based service offers a user-friendly interface
to create automated workflows seamlessly, integrating different
applications and services with ease, simplifying complex tasks.</li>
<li><a
href="https://docs.oracle.com/en/cloud/paas/self-service-integration-cloud/index.html">Oracle
Self-Service Integration</a> - Automate tasks between various cloud
applications with ease using Oracles Self-Service Integration tool,
providing a seamless and efficient integration process.</li>
<li><a href="https://zapier.com/">Zapier</a> - An intuitive automation
tool that connects hundreds of web services to create automations
between processes with ease, streamlining tasks, and enhancing overall
productivity.</li>
</ul>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Workflow engine <em>Software tools that enable
the design, execution, and monitoring of complex workflows or business
processes. Workflow engines provide a way to automate and streamline
business processes, while orchestration engines help to manage the
interactions between different systems or services.</em> - <a
href="https://github.com/Activiti/Activiti">Activiti (⭐9.8k)</a> - A
lightweight and Java-centric open-source engine for executing BPMN
(Business Process Model and Notation) workflows. - <a
href="https://github.com/apache/airflow">Apache Airflow (⭐34k)</a> - A
platform that allows you to create, schedule, and monitor workflows
programmatically, making it easier to manage and automate complex data
pipelines. - <a href="https://github.com/argoproj/argo-workflows">Argo
Workflows (⭐14k)</a> - An open-source, container-native workflow engine
designed to orchestrate parallel jobs on Kubernetes, making it easier to
manage and automate complex workflows in a cloud-native environment. -
<a href="https://github.com/azkaban/azkaban">Azkaban (⭐4.3k)</a> - A
distributed workflow manager that helps solve the problem of Hadoop job
dependencies, making it easier to schedule and manage workflows in
large-scale data processing environments. - <a
href="https://github.com/bonitasoft/bonita-engine">Bonita (⭐145)</a> -
An open-source BPMN engine that comes with a designer and optional
development environment, making it easier to build and automate complex
business processes. - <a href="https://github.com/uber/cadence">Cadence
(⭐7.7k)</a> - A fault-tolerant, stateful code platform that makes it
easier to build and manage complex, long-running applications. - <a
href="https://github.com/camunda/camunda-bpm-platform">Camunda
(⭐3.9k)</a> - An open-source workflow and decision automation platform
that helps you automate business processes and decisions in a flexible
and scalable way. - <a
href="https://github.com/Netflix/conductor">Conductor (⭐12k)</a> - A
cloud-based orchestration engine designed to run and manage workflows in
a microservices architecture. - <a
href="https://github.com/elsa-workflows/elsa-core">Elsa Core
(⭐5.7k)</a> - A library that enables workflow execution in any .NET
Core application, making it easier to automate business processes in
.NET environments. - <a
href="https://github.com/flowable/flowable-engine">Flowable (⭐7.3k)</a>
- A set of open-source business process engines that are compact and
efficient, making it easier to automate business processes in a scalable
and reliable way. - <a href="https://github.com/kiegroup/jbpm">jBPM
(⭐1.5k)</a> - A toolkit for building business applications that helps
you automate business processes and decisions, making it easier to
manage complex workflows. - <a
href="https://github.com/StackStorm/st2">StackStorm (⭐5.8k)</a> - A
robust automation engine that provides sensors, triggers, rules,
workflows, and actions to help you automate and orchestrate complex
workflows and applications. - <a
href="https://github.com/temporalio/temporal">Temporal (⭐9.7k)</a> - An
open-source platform that uses a workflow-as-code approach to make your
applications more reliable and scalable.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ## Integration Patterns <em>Integration patterns
provide standardized solutions for common integration problems within an
enterprise. Enterprise Integration Patterns (EIP) provide a common
language for describing integration problems and solutions, while
Integration Architecture Patterns address high-level concerns of
enterprise architects. Service-Oriented Architecture (SOA) patterns
provide guidance for designing and implementing service-oriented
architectures, ensuring that services are scalable, reusable, and
loosely coupled.</em> ### Enterprise Integration Patterns <em>Patterns
from a book by Gregor Hohpe and Bobby Woolf.</em> - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/Aggregator.html">Aggregator</a>
- How do we combine the results of individual, but related messages so
that they can be processed as a whole?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/CanonicalDataModel.html">Canonical
Data Model</a> - How can you minimize dependencies when integrating
applications that use different data formats? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/ChannelAdapter.html">Channel
Adapter</a> - How can you connect an application to the messaging system
so that it can send and receive messages? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/ChannelPurger.html">Channel
Purger</a> - How can you keep left-over messages on a channel from
disturbing tests or running systems? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html">Claim
Check</a> - How can we reduce the data volume of message sent across the
system without sacrificing information content?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/CommandMessage.html">Command
Message</a> - How can messaging be used to invoke a procedure in another
application?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/CompetingConsumers.html">Competing
Consumers</a> - How can a messaging client process multiple messages
concurrently? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/DistributionAggregate.html">Composed
Message Processor</a> - How can you maintain the overall message flow
when processing a message consisting of multiple elements, each of which
may require different processing?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/DataEnricher.html">Content
Enricher</a> - How do we communicate with another system if the message
originator does not have all the required data items available?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/ContentFilter.html">Content
Filter</a> - How do you simplify dealing with a large message, when you
are interested only in a few data items?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/ContentBasedRouter.html">Content-Based
Router</a> - How do we handle a situation where the implementation of a
single logical function (e.g., inventory check) is spread across
multiple physical systems?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/ControlBus.html">Control
Bus</a> - How can we effectively administer a messaging system that is
distributed across multiple platforms and a wide geographic area?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/CorrelationIdentifier.html">Correlation
Identifier</a> - How does a requestor that has received a reply know
which request this is the reply for? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/DatatypeChannel.html">Datatype
Channel</a> - How can the application send a data item such that the
receiver will know how to process it? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/DeadLetterChannel.html">Dead
Letter Channel</a> - What will the messaging system do with a message it
cannot deliver?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/Detour.html">Detour</a>
- How can you route a message through intermediate steps to perform
validation, testing or debugging functions? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/DocumentMessage.html">Document
Message</a> - How can messaging be used to transfer data between
applications? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/DurableSubscription.html">Durable
Subscriber</a> - How can a subscriber avoid missing messages while it is
not listening for them? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/DynamicRouter.html">Dynamic
Router</a> - How can you avoid the dependency of the router on all
possible destinations while maintaining its efficiency? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/EnvelopeWrapper.html">Envelope
Wrapper</a> - How can existing systems participate in a messaging
exchange that places specific requirements on the message format, such
as message header fields or encryption?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/EventMessage.html">Event
Message</a> - How can messaging be used to transmit events from one
application to another? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/EventDrivenConsumer.html">Event-Driven
Consumer</a> - How can an application automatically consume messages as
they become available? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/FormatIndicator.html">Format
Indicator</a> - How can a
message<code>s data format be designed to allow for possible future changes? - [Guaranteed Delivery](https://www.enterpriseintegrationpatterns.com/patterns/messaging/GuaranteedMessaging.html) - How can the sender make sure that a message will be delivered, even if the messaging system fails? - [Idempotent Receiver](https://www.enterpriseintegrationpatterns.com/patterns/messaging/IdempotentReceiver.html) - How can a message receiver deal with duplicate messages? - [Invalid Message Channel](https://www.enterpriseintegrationpatterns.com/patterns/messaging/InvalidMessageChannel.html) - How can a messaging receiver gracefully handle receiving a message that makes no sense? - [Message](https://www.enterpriseintegrationpatterns.com/patterns/messaging/Message.html) - How can two applications connected by a message channel exchange a piece of information? - [Message Dispatcher](https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageDispatcher.html) - How can multiple consumers on a single channel coordinate their message processing? - [Message Expiration](https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageExpiration.html) - How can a sender indicate when a message should be considered stale and thus shouldn</code>t
be processed? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageTranslator.html">Message
Translator</a> - How can systems using different data formats
communicate with each other using messaging?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageBroker.html">Message
Broker</a> - How can you decouple the destination of a message from the
sender and maintain central control over the flow of messages? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageBus.html">Message
Bus</a> - What is an architecture that enables separate applications to
work together, but in a decoupled fashion such that applications can be
easily added or removed without affecting the others?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageChannel.html">Message
Channel</a> - How does one application communicate with another using
messaging? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageEndpoint.html">Message
Endpoint</a> - How does an application connect to a messaging channel to
send and receive messages? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/Filter.html">Message
Filter</a> - How can a component avoid receiving uninteresting messages?
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageHistory.html">Message
History</a> - How can we effectively analyze and debug the flow of
messages in a loosely coupled system?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageRouter.html">Message
Router</a> - How can you decouple individual processing steps so that
messages can be passed to different filters depending on a set of
conditions? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageSequence.html">Message
Sequence</a> - How can messaging transmit an arbitrarily large amount of
data? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageStore.html">Message
Store</a> - How can we report against message information without
disturbing the loosely coupled and transient nature of a messaging
system?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessagingBridge.html">Messaging
Bridge</a> - How can multiple messaging systems be connected so that
messages available on one are also available on the others? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessagingGateway.html">Messaging
Gateway</a> - How do you encapsulate access to the messaging system from
the rest of the application? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessagingMapper.html">Messaging
Mapper</a> - How do you move data between domain objects and the
messaging infrastructure while keeping the two independent of each
other? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/Normalizer.html">Normalizer</a>
- How do you process messages that are semantically equivalent, but
arrive in a different format? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/PipesAndFilters.html">Pipes
and Filters</a> - How can we perform complex processing on a message
while maintaining independence and flexibility?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/PointToPointChannel.html">Point-to-Point
Channel</a> - How can the caller be sure that exactly one receiver will
receive the document or perform the call? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/PollingConsumer.html">Polling
Consumer</a> - How can an application consume a message when the
application is ready?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/ProcessManager.html">Process
Manager</a> - How do we route a message through multiple processing
steps when the required steps may not be known at design-time and may
not be sequential? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/PublishSubscribeChannel.html">Publish-Subscribe
Channel</a> - How can the sender broadcast an event to all interested
receivers? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/RecipientList.html">Recipient
List</a> - How do we route a message to a list of dynamically specified
recipients? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/RequestReply.html">Request-Reply</a>
- When an application sends a message, how can it get a response from
the receiver? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/Resequencer.html">Resequencer</a>
- How can we get a stream of related but out-of-sequence messages back
into the correct order? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/ReturnAddress.html">Return
Address</a> - How does a replier know where to send the reply? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/RoutingTable.html">Routing
Slip</a> - How do we route a message consecutively through a series of
processing steps when the sequence of steps is not known at design-time
and may vary for each message?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/BroadcastAggregate.html">Scatter-Gather</a>
- How do you maintain the overall message flow when a message needs to
be sent to multiple recipients, each of which may send a reply?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageSelector.html">Selective
Consumer</a> - How can a message consumer select which messages it
wishes to receive?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessagingAdapter.html">Service
Activator</a> - How can an application design a service to be invoked
both via various messaging technologies and via non-messaging
techniques? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/SmartProxy.html">Smart
Proxy</a> - How can you track messages on a service that publishes reply
messages to the Return Address specified by the requestor? - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/Sequencer.html">Splitter</a>
- How can we process a message if it contains multiple elements, each of
which may have to be processed in a different way?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/TestMessage.html">Test
Message</a> - What happens, though, if a component is actively
processing messages, but garbles outgoing messages due to an internal
fault?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/TransactionalClient.html">Transactional
Client</a> - How can a client control its transactions with the
messaging system?<br />
- <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/WireTap.html">Wire
Tap</a> - How do you inspect messages that travel on a point-to-point
channel?</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Integration Architecture Patterns <em>Design
patterns used to connect systems and applications in an efficient and
seamless manner.</em> - <a
href="https://github.com/chanakaudaya/solution-architecture-patterns/blob/master/vendor-neutral/API-led-Connectivity-Pattern.md">API-led
Connectivity pattern</a> - Use APIs to connect different systems and
applications. - <a
href="https://github.com/chanakaudaya/solution-architecture-patterns/blob/master/vendor-neutral/Anti-Corruption-Layer-Pattern.md">Anti
Corruption Layer Pattern</a> - Add a layer to isolate and transform data
between systems. - <a
href="https://github.com/chanakaudaya/solution-architecture-patterns/blob/master/vendor-neutral/Introduction-to-Change-Data-Capture.md">Change
Data Capture Pattern</a> - Capture and propagate changes made to a
database or data source in real-time. - <a
href="https://github.com/chanakaudaya/solution-architecture-patterns/blob/master/vendor-neutral/Hybrid-API-Management-Pattern.md">Hybrid
API Management pattern</a> - Manage APIs that span both cloud and
on-premises environments using a central control plane. - <a
href="https://github.com/chanakaudaya/solution-architecture-patterns/blob/master/vendor-neutral/Hybrid-Integration-Pattern.md">Hybrid
Integration pattern</a> - Integrate systems and applications that are
deployed both on-premises and in the cloud using a combination of
integration technologies.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Microservice API Patterns <em>MAP (Microservice
API Patterns) is a set of proven solutions to common problems
encountered when designing, implementing, and maintaining message-based
APIs. It focuses on the message representations or payloads exchanged
during API calls and their impact on the design and runtime qualities of
an API. Proper governance of API specifications and implementations is
essential for their long-term maintenance.</em> - Foundation - <a
href="https://microservice-api-patterns.org/patterns/foundation/FrontendIntegration">Frontend
Integration</a> - How can client-side end-user interfaces that are
physically separated from server-side business logic and data storage be
populated and updated with computing results, result sets from searches
in data sources, and detailed information about data entities? How can
application frontends invoke activities in a backend or upload data to
it? - <a
href="https://microservice-api-patterns.org/patterns/foundation/BackendIntegration">Backend
Integration</a> - How can distributed applications and their parts,
which have been built independently and are deployed separately,
exchange data and trigger mutual activity while preserving
system-internal conceptual integrity without introducing undesired
coupling? - <a
href="https://microservice-api-patterns.org/patterns/foundation/PublicAPI">Public
API</a> - How can an API be made available to an unlimited and/or
unknown number of API clients outside the organization that are
globally, nationally, and/or regionally distributed? - <a
href="https://microservice-api-patterns.org/patterns/foundation/CommunityAPI">Community
API</a> - How can the visibility of and the access to an API be
restricted to a closed user group that does not work for a single
organizational unit but for multiple legal entities (such as companies,
nonprofit/nongovernment organizations, and governments)? - <a
href="https://microservice-api-patterns.org/patterns/foundation/SolutionInternalAPI">Solution-Internal
API</a> - How can access to and usage of an API be limited to an
application, for instance, components in the same or another logical
layer and/or physical tier? - <a
href="https://microservice-api-patterns.org/patterns/foundation/APIDescription">API
Description</a> - Which knowledge should be shared between an API
provider and its clients? How should this knowledge be documented?</p>
<ul>
<li>Responsibility
<ul>
<li>Endpoint Roles
<ul>
<li><a
href="https://microservice-api-patterns.org/patterns/responsibility/endpointRoles/ProcessingResource">Processing
Resource</a> - How can an API provider allow its clients to trigger an
action in it?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/responsibility/endpointRoles/InformationHolderResource">Information
Holder Resource</a> - How can domain data be exposed in an API, but its
implementation still be hidden? How can an API expose data entities so
that API clients can access and/or modify these entities concurrently
without compromising data integrity and quality?</li>
</ul></li>
<li>Operation Responsibilities
<ul>
<li><a
href="https://microservice-api-patterns.org/patterns/responsibility/operationResponsibilities/StateCreationOperation">State
Creation Operation</a> - How can an API provider allow its clients to
report that something has happened that the provider needs to know
about, for instance, to trigger instant or later processing?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/responsibility/operationResponsibilities/RetrievalOperation">Retrieval
Operation</a> - How can information available from a remote party (the
API provider, that is) be retrieved to satisfy an information need of an
end user or to allow further client-side processing?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/responsibility/operationResponsibilities/StateTransitionOperation">State
Transition Operation</a> - How can a client initiate a processing action
that causes the provider-side application state to change? How can API
clients and API providers share the responsibilities required to execute
and control business processes and their activities?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/responsibility/operationResponsibilities/ComputationFunction">Computation
Function</a> - How can a client invoke side-effect-free remote
processing on the provider side to have a result calculated from its
input?</li>
</ul></li>
<li>Information Holder Types
<ul>
<li><a
href="https://microservice-api-patterns.org/patterns/responsibility/informationHolderEndpointTypes/OperationalDataHolder">Operational
Data Holder</a> - How can an API support clients that want to create,
read, update, and/or delete instances of domain entities that represent
operational data: data that is rather short-lived, changes often during
daily business operations, and has many outgoing relations?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/responsibility/informationHolderEndpointTypes/MasterDataHolder">Master
Data Holder</a> - How can I design an API that provides access to master
data that lives for a long time, does not change frequently, and will be
referenced from many clients?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/responsibility/informationHolderEndpointTypes/ReferenceDataHolder">Reference
Data Holder</a> - How should data that is referenced in many places,
lives long, and is immutable for clients be treated in API endpoints?
How can such reference data be used in requests to and responses from
Processing Resources or Information Holder Resources?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/responsibility/informationHolderEndpointTypes/LinkLookupResource">Link
Lookup Resource</a> - How can message representations refer to other,
possibly many and frequently changing, API endpoints and operations
without binding the message recipient to the actual addresses of these
endpoints?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/responsibility/informationHolderEndpointTypes/DataTransferResource">Data
Transfer Resource</a> - How can two or more communication participants
exchange data without knowing each other, without being available at the
same time, and even if the data has already been sent before its
recipients became known?</li>
</ul></li>
</ul></li>
<li>Structure
<ul>
<li>Representation Elements
<ul>
<li><a
href="https://microservice-api-patterns.org/patterns/structure/representationElements/AtomicParameter">Atomic
Parameter</a> - How can simple, unstructured data (such as a number, a
string, a Boolean value, or a block of binary data) be exchanged between
API client and API provider?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/structure/representationElements/AtomicParameterList">Atomic
Parameter List</a> - How can multiple related Atomic Parameters be
combined in a representation element so that each of them stays simple,
but their relatedness becomes explicit in the API Description and the
runtime message exchanges?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/structure/representationElements/ParameterTree">Parameter
Tree</a> - How can containment relationships be expressed when defining
complex representation elements and exchanging such related elements at
runtime?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/structure/representationElements/ParameterForest">Parameter
Forest</a> - How can multiple Parameter Trees be exposed as request or
response payload of an API operation?</li>
</ul></li>
<li>Element Stereotypes
<ul>
<li><a
href="https://microservice-api-patterns.org/patterns/structure/elementStereotypes/DataElement">Data
Element</a> - How can domain/application-level information be exchanged
between API clients and API providers without exposing provider-internal
data definitions in the API? How can API client and API provider be
decoupled from a data management point of view?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/structure/elementStereotypes/MetadataElement">Metadata
Element</a> - How can messages be enriched with additional information
so that receivers can interpret the message content correctly, without
having to hardcode assumptions about the data semantics?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/structure/elementStereotypes/IdElement">Id
Element</a> - How can API elements be distinguished from each other at
design time and at runtime? When applying domain-driven design, how can
elements of the Published Language be identified?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/structure/elementStereotypes/LinkElement">Link
Element</a> - How can API endpoints and operations be referenced in
request and response message payloads so that they can be called
remotely?</li>
</ul></li>
<li>Special Purpose Representations
<ul>
<li><a
href="https://microservice-api-patterns.org/patterns/structure/specialPurposeRepresentations/APIKey">API
Key</a> - How can an API provider identify and authenticate clients and
their requests?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/structure/specialPurposeRepresentations/ErrorReport">Error
Report</a> - How can an API provider inform its clients about
communication and processing faults? How can this information be made
independent of the underlying communication technologies and platforms
(for example, protocol-level headers representing status codes)?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/structure/specialPurposeRepresentations/ContextRepresentation">Context
Representation</a> - How can API consumers and providers exchange
context information without relying on any particular remoting
protocols? How can identity information and quality properties in a
request be made visible to related subsequent ones in
conversations?</li>
</ul></li>
</ul></li>
<li>Quality
<ul>
<li>Reference Management
<ul>
<li><a
href="https://microservice-api-patterns.org/patterns/quality/referenceManagement/EmbeddedEntity">Embedded
Entity</a> - How can one avoid sending multiple messages when their
receivers require insights about multiple related information
elements?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/quality/referenceManagement/LinkedInformationHolder">Linked
Information Holder</a> - How can messages be kept small even when an API
deals with multiple information elements that reference each other?</li>
</ul></li>
<li>Data Transfer Parsimony
<ul>
<li><a
href="https://microservice-api-patterns.org/patterns/quality/dataTransferParsimony/Pagination">Pagination</a>
- How can messages be kept small even when an API deals with multiple
information elements that reference each other?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/quality/dataTransferParsimony/WishList">Wish
List</a> - How can an API client inform the API provider at runtime
about the data it is interested in?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/quality/dataTransferParsimony/WishTemplate">Wish
Template</a> - How can an API client inform the API provider about
nested data that it is interested in? How can such preferences be
expressed flexibly and dynamically?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/quality/dataTransferParsimony/ConditionalRequest">Conditional
Request</a> - How can unnecessary server-side processing and bandwidth
usage be avoided when frequently invoking API operations that return
rarely changing data?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/quality/dataTransferParsimony/RequestBundle">Request
Bundle</a> - How can the number of requests and responses be reduced to
increase communication efficiency?</li>
</ul></li>
<li>Quality Management and Governance
<ul>
<li><a
href="https://microservice-api-patterns.org/patterns/quality/qualityManagementAndGovernance/PricingPlan">Pricing
Plan</a> - How can the API provider meter API service consumption and
charge for it?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/quality/qualityManagementAndGovernance/RateLimit">Rate
Limit</a> - How can the API provider prevent API clients from excessive
API usage?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/quality/qualityManagementAndGovernance/ServiceLevelAgreement">Service
Level Agreement</a> - How can an API client learn about the specific
quality-of-service characteristics of an API and its endpoint
operations? How can these characteristics, and the consequences of not
meeting them, be defined and communicated in a measurable way?</li>
</ul></li>
</ul></li>
<li>Evolution
<ul>
<li><a
href="https://microservice-api-patterns.org/patterns/evolution/VersionIdentifier">Version
Identifier</a> - How can an API provider indicate its current
capabilities as well as the existence of possibly incompatible changes
to clients in order to prevent malfunctioning of clients due to
undiscovered interpretation errors?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/evolution/SemanticVersioning">Semantic
Versioning</a> - How can stakeholders compare API versions to detect
immediately whether they are compatible?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/evolution/TwoInProduction">Two
In Production</a> - How can a provider gradually update an API without
breaking existing clients but also without having to maintain a large
number of API versions in production?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/evolution/AggressiveObsolescence">Aggressive
Obsolescence</a> - How can API providers reduce the effort for
maintaining an entire API or its parts (such as endpoints, operations,
or message representations) with guaranteed service quality levels?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/evolution/ExperimentalPreview">Experimental
Preview</a> - How can providers make the introduction of a new API, or
new API version, less risky for their clients and obtain early adopter
feedback without having to freeze the API design prematurely?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/evolution/LimitedLifetimeGuarantee">Limited
Lifetime Guarantee</a> - How can a provider let clients know for how
long they can rely on the published version of an API?</li>
<li><a
href="https://microservice-api-patterns.org/patterns/evolution/EternalLifetimeGuarantee">Eternal
Lifetime Guarantee</a> - How can a provider support clients that are
unable or unwilling to migrate to newer API versions at all?</li>
</ul></li>
</ul>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### SOA Patterns <em>SOA patterns are design
solutions that provide guidelines and best practices for developing
flexible and reusable service-oriented applications. These patterns
address various aspects of service-oriented application design,
including service identification, interaction, composition, and
granularity.</em> - Foundational Inventory Patterns - <a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/canonical_protocol">Canonical
Protocol</a> - Defines a common communication protocol between services
to enable interoperability and decoupling. - <a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/canonical_schema">Canonical
Schema</a> - Defines a standard data model and format for exchanging
data between services. - <a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/domain_inventory">Domain
Inventory</a> - Identifies and categorizes the types of services within
a particular domain. - <a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/enterprise_inventory">Enterprise
Inventory</a> - Identifies and categorizes the types of services within
a particular domain. - <a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/logic_centralization">Logic
Centralization</a> - Centralizes business logic within a service layer
to reduce redundancy and promote consistency. - <a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_layers">Service
Layers</a> - Centralizes business logic within a service layer to reduce
redundancy and promote consistency. - <a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_normalization">Service
Normalization</a> - Centralizes business logic within a service layer to
reduce redundancy and promote consistency.</p>
<ul>
<li>Logical Inventory Layer Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/entity_abstraction">Entity
Abstraction</a> - Abstracts data entities to simplify data access and
reduce coupling.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/process_abstraction">Process
Abstraction</a> - Abstracts processes to improve reusability and
maintainability.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/utility_abstraction">Utility
Abstraction</a> - Abstracts common utilities to reduce duplication and
promote consistency.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/micro_task_abstraction">Micro
Task Abstraction</a> - Breaks down tasks into smaller, more granular
tasks for easier management.</li>
</ul></li>
<li>Inventory Centralization Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/policy_centralization">Policy
Centralization</a> - Centralizes policies to reduce duplication and
improve consistency.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/process_centralization">Process
Centralization</a> - Centralizes processes to improve reusability and
maintainability.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/rules_centralization">Rules
Centralization</a> - Centralizes business rules to reduce duplication
and promote consistency.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/schema_centralization">Schema
Centralization</a> - Centralizes data schemas to reduce duplication and
improve consistency.</li>
</ul></li>
<li>Inventory Implementation Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/canonical_resources">Canonical
Resources</a> - Defines a standard set of resources for common
functionality across services.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/cross_domain_utility_layer">Cross-Domain
Utility Layer</a> - Uses multiple protocols for improved performance and
flexibility.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/dual_protocols">Dual
Protocols</a> - Defines a common utility layer across multiple
domains.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/inventory_endpoint">Inventory
Endpoint</a> - Defines a standard endpoint for accessing inventory
resources.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_grid">Service
Grid</a> - Provides a framework for managing and scaling services.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/state_repository">State
Repository</a> - Stores and manages service state information.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/stateful_services">Stateful
Services</a> - Maintains state information across service
invocations.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/augmented_protocols">Augmented
Protocols</a> - Enhances protocols with additional features.</li>
</ul></li>
<li>Inventory Governance Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/canonical_expression">Canonical
Expression</a> - Defines a standard expression language for inventory
data.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/canonical_versioning">Canonical
Versioning</a> - Defines a standard versioning scheme for inventory
resources.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/metadata_centralization">Metadata
Centralization</a> - Centralizes metadata to reduce duplication and
improve consistency.</li>
</ul></li>
<li>Foundational Service Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/agnostic_capability">Agnostic
Capability</a> - Abstracts service capabilities for improved
flexibility.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/agnostic_context">Agnostic
Context</a> - Abstracts service context for improved flexibility.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/functional_decomposition">Functional
Decomposition</a> - Breaks down services into smaller, more manageable
components.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/non_agnostic_context">Non-Agnostic
Context</a> - Breaks down services into smaller, more manageable
components.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_encapsulation">Service
Encapsulation</a> - Encapsulates service functionality for improved
maintainability.</li>
</ul></li>
<li>Service Implementation Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/partial_state_deferral">Partial
State Deferral</a> - Encapsulates service functionality for improved
maintainability.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/partial_validation">Partial
Validation</a> - Validates only relevant data for improved
performance.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/redundant_implementation">Redundant
Implementation</a> - Implements multiple versions of a service for
improved flexibility.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_data_replication">Service
Data Replication</a> - Replicates data across multiple services for
improved performance.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_facade">Service
Façade</a> - Provides a simplified interface to a complex service for
improved usability.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/ui_mediator">UI
Mediator</a> - Mediates between the user interface and underlying
services for improved usability.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/reference_data_centralization">Reference
Data Centralization</a> - Centralizes reference data to reduce
duplication and improve consistency.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/microservice_deployment">Microservice
Deployment</a> - Deploys services as independent, autonomous units for
improved scalability and resilience.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/containerization">Containerization</a>
- How can an environment be provided with maximum support for services
with high-performance recovery and scalability requirements?</li>
</ul></li>
<li>Service Security Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/exception_shielding">Exception
Shielding</a> - Protects against security vulnerabilities through proper
handling of exceptions.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/message_screening">Message
Screening</a> - Screens messages for malicious content.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_perimeter_guard">Service
Perimeter Guard</a> - Guards the service perimeter to prevent
unauthorized access.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/trusted_subsystem">Trusted
Subsystem</a> - Establishes trust between subsystems for improved
security.</li>
</ul></li>
<li>Service Contract Design Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/concurrent_contracts">Concurrent
Contracts</a> - Allows multiple versions of a service contract to
coexist simultaneously.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/contract_centralization">Contract
Centralization</a> - Centralizes service contracts to improve
consistency and reduce duplication.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/contract_denormalization">Contract
Denormalization</a> - Centralizes service contracts to improve
consistency and reduce duplication.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/decoupled_contract">Decoupled
Contract</a> - Decouples service contracts from their implementation for
improved flexibility.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/validation_abstraction">Validation
Abstraction</a> - Abstracts validation logic to improve reusability and
maintainability.</li>
</ul></li>
<li>Legacy Encapsulation Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/file_gateway">File
Gateway</a> - Provides a gateway to access legacy file-based
systems.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/legacy_wrapper">Legacy
Wrapper</a> - Wraps legacy systems to expose them as services.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/multi_channel_endpoint">Multi-Channel
Endpoint</a> - Provides multiple communication channels to access legacy
systems.</li>
</ul></li>
<li>Service Governance Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/compatible_change">Compatible
Change</a> - Enables changes to a service without breaking existing
clients.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/decomposed_capability">Decomposed
Capability</a> - Breaks down a service capability into smaller, more
manageable pieces.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/distributed_capability">Distributed
Capability</a> - Breaks down a service capability into smaller, more
manageable pieces.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/proxy_capability">Proxy
Capability</a> - Provides a proxy to a remote service capability to
improve performance and reduce network overhead.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_decomposition">Service
Decomposition</a> - Breaks down a monolithic service into smaller, more
manageable pieces.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_refactoring">Service
Refactoring</a> - Refactors a service to improve its design and
performance.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/termination_notification">Termination
Notification</a> - Notifies clients of a services termination.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/version_identification">Version
Identification</a> - Identifies the version of a service.</li>
</ul></li>
<li>Capability Composition Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/capability_composition">Capability
Composition</a> - Combines multiple service capabilities to create a new
capability.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/capability_recomposition">Capability
Recomposition</a> - Recombines existing service capabilities to create a
new capability.</li>
</ul></li>
<li>Service Messaging Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/asynchronous_queuing">Asynchronous
Queuing</a> - Uses a message queue to decouple services and improve
scalability and reliability.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/event_driven_messaging">Event-Driven
Messaging</a> - Uses events to trigger service invocations and reduce
coupling.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/intermediate_routing">Intermediate
Routing</a> - Uses intermediate routing nodes to improve performance and
flexibility.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/messaging_metadata">Messaging
Metadata</a> - Uses metadata to describe and manage service
messages.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/reliable_messaging">Reliable
Messaging</a> - Ensures message delivery and reliability in a
distributed environment.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_agent">Service
Agent</a> - Acts as a proxy for a remote service to improve performance
and reduce network overhead.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_callback">Service
Callback</a> - Uses callbacks to communicate between services.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_instance_routing">Service
Instance Routing</a> - Routes messages based on the service instance to
improve performance and scalability.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/service_messaging">Service
Messaging</a> - Describes the communication between services.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/state_messaging">State
Messaging</a> - Uses messages to manage state information in a
distributed environment.</li>
</ul></li>
<li>Composition Implementation Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/agnostic_sub_controller">Agnostic
Sub-Controller</a> - Separates sub-controllers from the main controller
to improve reusability and maintainability.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/atomic_service_transaction">Atomic
Service Transaction</a> - Uses transactions to ensure atomicity and
consistency across multiple service invocations.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/compensating_service_transaction">Compensating
Service Transaction</a> - Reverses the effects of a failed
transaction.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/composition_autonomy">Composition
Autonomy</a> - Enables services to act autonomously within a
composition.</li>
</ul></li>
<li>Service Interaction Security Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/brokered_authentication">Brokered
Authentication</a> - Authenticates clients through a broker.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/data_confidentiality">Data
Confidentiality</a> - Ensures data confidentiality in a distributed
environment.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/data_origin_authentication">Data
Origin Authentication</a> - Authenticates the origin of a message.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/direct_authentication">Direct
Authentication</a> - Authenticates clients directly.</li>
</ul></li>
<li>Transformation Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/data_format_transformation">Data
Format Transformation</a> - Transforms data formats to enable
interoperability.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/data_model_transformation">Data
Model Transformation</a> - Transforms data models to enable
interoperability.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/protocol_bridging">Protocol
Bridging</a> - Bridges between different protocols to enable
interoperability.</li>
</ul></li>
<li>REST-inspired Patterns
<ul>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/entity_linking">Entity
Linking</a> - Links related resources to enable navigation and
discovery.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/lightweight_endpoint">Lightweight
Endpoint</a> - Provides a lightweight endpoint for resource access.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/reusable_contract">Reusable
Contract</a> - Reuses common contracts to improve consistency and reduce
duplication.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/content_negotiation">Content
Negotiation</a> - Negotiates the content format between clients and
servers.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/endpoint_redirection">Endpoint
Redirection</a> - Redirects clients to alternative endpoints.</li>
<li><a
href="https://patterns.arcitura.com/soa-patterns/design_patterns/idempotent_capability">Idempotent
Capability</a> - Ensures that the same action can be performed multiple
times without changing the system state.</li>
</ul></li>
</ul>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ## Resources <em>Some useful specifications,
standards, articles and documentation.</em> ### API Specification - <a
href="https://github.com/apiaryio/api-blueprint">API Blueprint
(⭐8.6k)</a> - A powerful high-level language for designing and
documenting APIs that allows software engineers to easily collaborate
and create efficient APIs. - <a
href="https://github.com/asyncapi/spec">AsyncAPI (⭐3.8k)</a> - An
essential tool for developing Event-Driven Architectures (EDA) and
enables engineers to build a better tooling ecosystem. - <a
href="https://github.com/graphql/graphql-spec">GraphQL (⭐14k)</a> - A
sophisticated query language and runtime for building efficient APIs
that empowers engineers to retrieve data from existing systems with
ease. - <a href="https://github.com/json-api/json-api">JSON:API
(⭐7.3k)</a> - A standardized specification for building APIs that
simplifies the representation of resources, relationships, and metadata,
making it easier for software engineers to create efficient APIs. - <a
href="https://github.com/OAI/OpenAPI-Specification">OpenAPI (ex.Swagger)
(⭐28k)</a> - A language-agnostic specification for creating RESTful
APIs that enables both humans and machines to understand the
capabilities of a service without the need for source code or
documentation. - <a href="https://github.com/raml-org/raml-spec">RAML
(⭐3.8k)</a> - A RESTful API Modeling Language that allows software
engineers to design and create efficient APIs by modeling resources,
endpoints, and interactions. - <a
href="http://www.w3.org/TR/wsdl20">WSDL</a> - A powerful XML-based
interface description language for SOAP-based services that enables
software engineers to describe the functionality of a web service and
automate the creation of client code.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Articles - <a
href="https://github.com/shieldfy/API-Security-Checklist">API-Security-Checklist
(⭐21k)</a> - Best practices about REST API security. - <a
href="https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm">Architectural
Styles and the Design of Network-based Software Architectures</a> - Roy
Fieldings dissertation defining REST. - <a
href="http://martinfowler.com/articles/enterpriseREST.html">Enterprise
Integration Using REST</a> - Discusses the constraints and flexibility
that you have with nonpublic APIs, and lessons learned from doing large
scale RESTful integration across multiple teams. - <a
href="http://martinfowler.com/articles/richardsonMaturityModel.html">Richardson
Maturity Model</a> - Explained by Martin Fowler, originally presented by
Leonard Richardson. - <a
href="https://pages.apigee.com/rs/apigee/images/api-design-ebook-2012-03.pdf">Web
API Design: Crafting interfaces that developers love</a> - Creating Web
APIs that are consistent, intuitive, and user-friendly for
developers.</p>
<!--lint disable-->
<strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Certifications
<details>
<summary>
API Academy
</summary>
<ul>
<li><a href="https://apiacademy.learnupon.com/">API Designer</a> -
Validate your understanding of API design basics and best
practices.</li>
<li><a
href="https://apiacademy.co/2020/05/virtual-api-academy-workshop/">API
Product Manager</a> - Demonstrate your proficiency in managing APIs as
products.</li>
<li><a href="https://apiacademy.co/api-certification/">API Security
Architect</a> - Validate your expertise in securing APIs using modern
architectures.</li>
</ul>
</details>
<details>
<summary>
APIsec University
</summary>
<ul>
<li><a
href="https://www.apisecuniversity.com/courses/api-documentation-best-practices">API
Documentation Best Practices</a> - The 2-hour course covers everything
you need to know to create, automate, and publish API documentation your
developers, partners and users will love. You wll also learn why API
documentation is the foundation for strong governance, effective API
security, and achieving your API business goals.</li>
<li><a
href="https://www.apisecuniversity.com/courses/api-penetration-testing">API
Penetration Testing</a> - The API Penetration Testing course covers all
the key topics to become an APIsec professional. This hands-on course
includes over 12 hours of live instruction and provides detailed labs on
API hacking techniques and how to uncover vulnerabilities.</li>
<li><a
href="https://www.apisecuniversity.com/courses/api-security-for-pci-compliance">API
Security for PCI Compliance</a> - This 60-minute course examines the new
PCI DSS 4.0 requirements and details the API security obligations for
compliance. DSS 4.0 introduces API security concerns for the time ever -
enroll to understand what the implications are for your
organization.</li>
<li><a
href="https://www.apisecuniversity.com/courses/api-security-fundamentals">API
Security Fundamentals</a> - The 90-minute course covers the core threats
to APIs and how to prevent breaches. Learn the OWASP API Security Top
10, examine real-world API attacks, and understand the 3 Pillars of API
Security.</li>
<li><a
href="https://www.apisecuniversity.com/courses/certified-api-security-analyst-exam">Certified
API Security Analyst</a> - The CASA exam is designed to test your
expertise in API security threats, risks, and best practices. Students
are expected to have completed the OWASP API Security and Beyond! course
before attempting to earn the CASA certification.</li>
<li><a
href="https://www.apisecuniversity.com/courses/owasp-api-security-top-10-and-beyond">OWASP
API Security Top 10</a> - The 90-minute course provides a deep-dive into
the 2023 edition of the OWASP API Security Top 10 - and covers key
concepts that didnt make it into the Top 10.</li>
<li><a
href="https://www.apisecuniversity.com/courses/securing-api-servers">Securing
API Servers</a> - Learn key concepts for keeping API servers secure -
from CORS to error handling to rate limiting and more.</li>
</ul>
</details>
<details>
<summary>
Boomi
</summary>
<ul>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OIKWA2&amp;ltui__urlRedirect=learning-plan-detail-standard">Associate
Administrator Certification</a> - Validates an individuals foundational
knowledge and skills in managing and administering the Boomi platform,
focusing on platform monitoring, troubleshooting, and security.</li>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OIeWAM&amp;ltui__urlRedirect=learning-plan-detail-standard">Associate
Developer Certification</a> - Demonstrates a candidates basic
understanding of building and deploying integration processes using the
Boomi platform, including design patterns, deployment, and error
handling.</li>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OIFWA2&amp;ltui__urlRedirect=learning-plan-detail-standard">Associate
EDI for X12 Certification</a> - Validates an individuals proficiency in
using Boomi to design, develop, and manage Electronic Data Interchange
(EDI) integrations with the X12 standard, covering essential concepts
like EDI document structure and trading partner management.</li>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OIZWA2&amp;ltui__urlRedirect=learning-plan-detail-standard">Associate
Flow Essentials Certification</a> - Showcases a candidates knowledge of
creating and managing business applications using Boomi Flow, with
emphasis on workflow design, user interfaces, and data integration.</li>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OIPWA2&amp;ltui__urlRedirect=learning-plan-detail-standard">Associate
Master Data Hub Certification</a> - Highlights a candidates
understanding of using the Boomi Master Data Hub to ensure data quality
and consistency across systems, focusing on data modeling, governance,
and synchronization.</li>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OJOWA2&amp;ltui__urlRedirect=learning-plan-detail-standard">Development
and Application Architecture Certification</a> - Confirms an
individuals expertise in designing and implementing complex integration
solutions and application architectures on the Boomi platform, including
best practices and performance optimization.</li>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OKzWAM&amp;ltui__urlRedirect=learning-plan-detail-standard">Professional
API Design Certification</a> - Demonstrates a candidates ability to
design, develop, and manage APIs using Boomi, including RESTful API
principles, API security, and versioning.</li>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OIyWAM&amp;ltui__urlRedirect=learning-plan-detail-standard">Professional
API Management Certification</a> - Validates an individuals expertise
in managing the full lifecycle of APIs using the Boomi platform,
including API deployment, monitoring, and analytics.</li>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OJrWAM&amp;ltui__urlRedirect=learning-plan-detail-standard">Professional
Developer Certification</a> - Recognizes a candidates in-depth
knowledge and skills in developing, deploying, and managing integration
processes using Boomi, with emphasis on advanced data transformation and
error handling techniques.</li>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OIUWA2&amp;ltui__urlRedirect=learning-plan-detail-standard">Professional
Flow Developer Certification</a> - Showcases an individuals advanced
capabilities in designing, developing, and managing business
applications using Boomi Flow, including complex workflow design, custom
UI components, and integration with external systems.</li>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OI5WAM&amp;ltui__urlRedirect=learning-plan-detail-standard">Professional
Linux Operational Administrator Certification</a> - Confirms a
candidates proficiency in managing and administering Boomi on Linux
systems, covering topics such as system installation, configuration,
security, and performance optimization.</li>
<li><a
href="https://community.boomi.com/s/learning-plan-detail-standard?ltui__urlRecordId=aOM6S0000008OIAWA2&amp;ltui__urlRedirect=learning-plan-detail-standard">Professional
Windows Operational Administrator Certification</a> - Validates an
individuals expertise in managing and administering Boomi on Windows
systems, focusing on system installation, configuration, security, and
performance optimization.</li>
</ul>
</details>
<details>
<summary>
IBM
</summary>
<ul>
<li><a
href="https://www.ibm.com/training/certification/C0003107#exam">IBM
Certified Solution Developer App Connect Enterprise V11</a> - Validate
your intermediate-level knowledge and experience to develop, deploy,
tune, and support platform-independent message flow applications using
IBM App Connect V11.0.</li>
<li><a
href="https://www.ibm.com/training/certification/C0002604#exam">IBM
Certified Solution Implementer API Connect v10.0.3</a> - Demonstrate
your intermediate-level knowledge and skills to develop, publish,
configure, and manage APIs using IBM API Connect v10.0.3.</li>
</ul>
</details>
<details>
<summary>
Gravitee
</summary>
<ul>
<li><a
href="https://gravitee.getlearnworlds.com/course/gravitee-event-native-api-management-foundations">Event-native
API Management Foundations</a> - Basics of Event-native API
Management.</li>
<li><a
href="https://gravitee.getlearnworlds.com/course/gravitee-enap-certification">Event-native
API Management Professional</a> - Focuses on some more advanced API
Management concepts, plus foundational knowledge around how to use
Gravitee API Management.</li>
</ul>
</details>
<details>
<summary>
Kong
</summary>
<ul>
<li><a href="https://konghq.com/academy/exam-preparation">Kong Gateway
Certified Associate</a> - Validate your entry-level knowledge and skills
on Kong Gateway for developers, DevOps, and architects.</li>
</ul>
</details>
<details>
<summary>
Mulesoft
</summary>
<ul>
<li><a
href="https://training.mulesoft.com/certification/developer-mule4-level1">MuleSoft
Certified Developer - Level 1</a> - Validate your knowledge and skills
to design, build, test and debug, deploy, and manage basic APIs and
integrations using MuleSoft.</li>
<li><a
href="https://training.mulesoft.com/certification/developer-mule4-level2">MuleSoft
Certified Developer - Level 2</a> - Validate your ability to work on
production-ready Mule applications that address and balance critical
non-functional requirements including monitoring, performance,
maintainability, reliability, and security.</li>
<li><a
href="https://training.mulesoft.com/certification/architect-integration-level1">MuleSoft
Certified Integration Architect - Level 1</a> - Validate your knowledge
and skills to translate functional and non-functional requirements into
integration interfaces and implementations.</li>
<li><a
href="https://training.mulesoft.com/certification/architect-platform-level1">MuleSoft
Certified Platform Architect - Level 1</a> - Validate your knowledge and
skills to direct the emergence of an effective application network out
of individual integration solutions following API-led connectivity
across an organization using Anypoint Platform.</li>
</ul>
</details>
<details>
<summary>
Oracle
</summary>
<ul>
<li><a
href="https://education.oracle.com/oracle-business-process-management-suite-12c-essentials/pexam_1Z0-435">Oracle
Business Process Management Suite 12c Certified Implementation
Specialist</a> - Validate your expertise in implementing Oracle BPM
Suite 12c solution.</li>
<li><a
href="https://education.oracle.com/oracle-cloud-platform-application-integration-2022-certified-professional/trackp_OCPAI2022CP">Oracle
Cloud Platform Application Integration 2022 Certified Professional</a> -
Validate your understanding of Oracle Application Integration to
implement these Cloud services.</li>
<li><a
href="https://education.oracle.com/oracle-data-integrator-12c-certified-implementation-specialist/trackp_379">Oracle
Data Integrator 12c Certified Implementation Specialist</a> - Validate
your expertise in selling or implementing Oracle Data Integration 12c
solutions.</li>
<li><a
href="https://education.oracle.com/oracle-soa-suite-12c-essentials/pexam_1Z0-434">Oracle
SOA Suite 12c Certified Implementation Specialist</a> - Validate your
expertise in implementing solutions based on Oracle SOA Suite 12c.</li>
</ul>
</details>
<details>
<summary>
Red Hat
</summary>
<ul>
<li><a
href="https://www.redhat.com/en/services/certification/red-hat-certified-specialist-api-management">Red
Hat Certified Specialist in API Management</a> - Validates the ability
to create and maintain enterprise APIs using the Red Hat 3scale API
Management platform.</li>
<li><a
href="https://www.redhat.com/en/services/certification/rhcs-business-rules">Red
Hat Certified Specialist in Business Rules</a> - Checks the knowledge,
skills, and abilities needed to perform tasks involving the
implementation and management of business logic using the Red Hat JBoss
BRMS.</li>
<li><a
href="https://www.redhat.com/en/services/certification/rhcs-cloud-native-integration">Red
Hat Certified Specialist in Cloud-native Integration</a> - Validates the
ability to create and maintain enterprise integration services based on
Red Hat Fuse, Camel, and APIs.</li>
<li><a
href="https://www.redhat.com/en/services/certification/red-hat-certified-specialist-event-driven-development-kafka">Red
Hat Certified Specialist in Event-Driven Development with Kafka</a> -
Validates the ability to develop applications using Apache Kafka and
Apache Kafka Streams.</li>
</ul>
</details>
<details>
<summary>
SAP
</summary>
<ul>
<li><a
href="https://training.sap.com/certification/c_cpi_15-sap-certified-development-associate---sap-integration-suite-g/">SAP
Certified Development Associate - SAP Integration Suite</a> - Validates
that the candidate possesses the fundamental and core knowledge required
of the SAP Integration Suite profile.</li>
</ul>
</details>
<details>
<summary>
SnapLogic
</summary>
<ul>
<li><a
href="https://learn.snaplogic.com/snaplogic-administrator-certification">SnapLogic
Administrator Certification</a> - Assesses your ability to handle
administrative tasks for SnapLogic instances.</li>
<li><a
href="https://learn.snaplogic.com/snaplogic-architect-certification">SnapLogic
Architect Certification</a> - Evaluates your knowledge of integration
reference architectures and key strategies for the SnapLogic platform,
covering topics like SnapLogic Architecture, Snaplex Requirements,
Pipeline Lifecycle Management, Advanced Data Transformations, API
Management, Resumable Pipelines, and Best Practices.</li>
<li><a
href="https://learn.snaplogic.com/snaplogic-certified-automation-professional">SnapLogic
Certified Enterprise Automation Professional</a> - An advanced
certification covering topics like SnapLogic platform, asset management,
workflows, expression language, tasks, pipeline modularization,
migration, and user assistance videos for various endpoints.</li>
<li><a
href="https://learn.snaplogic.com/snaplogic-developer-certification">SnapLogic
Developer Certification</a> - Testing your expertise in using the
SnapLogic SDK, implementing different parts of Snap functionality, and
building custom Snaps.</li>
<li><a
href="https://learn.snaplogic.com/snaplogic-integrator-certification-1">SnapLogic
Integrator Certification</a> - Focuses on topics such as beginner
training, ultra tasks, pipeline migration, and user assistance videos
covering various integration endpoints.</li>
</ul>
</details>
<details>
<summary>
TIBCO
</summary>
<ul>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-businessworks-associate-certification-exam">TIBCO
BusinessWorks Associate</a> - Checks the understanding of Business
Studio and TIBCO Cloud Integration, designing application components
(modules, WSDL, REST API), developing integration applications, and
testing, deploying, and managing applications.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-businessworks-6-certification-exam">TIBCO
BusinessWorks Certified Professional</a> - Validates the ability to
design, develop, deploy, monitor, and manage TIBCO BusinessWorks
applications of average complexity with minimal supervision.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-businessworks-container-edition-certification-exam">TIBCO
BusinessWorks Container Edition Certified Professional</a> - Validates
the ability to develop, deploy, and manage TIBCO BusinessWorks Container
Edition applications of average complexity with minimal
supervision.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-bpm-enterprise-associate-certification-exam">TIBCO
BPM Enterprise Associate</a> - Checks the understanding of TIBCO BPMs
features and capabilities, developing and managing business processes,
and deploying and testing process applications.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-bpm-enterprise-5-certification-exam">TIBCO
BPM Enterprise Certified Professional</a> - Validates the ability to
design, develop, deploy, and manage business processes using TIBCO BPM
Enterprise Suite.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-cloud-associate-certification-exam">TIBCO
Cloud Associate Certification</a> - Validates the skills and knowledge
required to work with TIBCO Cloud, including its key components and
features.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-mashery-associate-certification-exam">TIBCO
Cloud API Management Associate</a> - Covers topics such as API
definition creation and testing, API key authentication, and using the
Developer Portal and I/O docs.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-cloud-api-management-professional-certification-exam">TIBCO
Cloud API Management Certified Professional</a> - Validates the ability
to implement TIBCO Cloud Mesh, OAuth-based security, and manage SOAP
services.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-cloud-integration-associate-certification-exam">TIBCO
Cloud Integration Associate</a> - Validates the skills and knowledge
required to work with TIBCO Cloud Integration, including its Connect,
Develop, and Integrate capabilities.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-cloud-integration-connect-associate-certification-exam">TIBCO
Cloud Integration - Connect Associate</a> - Checks the usage of Connect
capability of TIBCO Cloud Integration, installing On-Premise Agent,
creating connections and integration apps, and configuring flows.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-cloud-integration-connect-certified-professional-exam">TIBCO
Cloud Integration - Connect Certified Professional</a> - Checks the
creation and management of connections, ensuring connection security,
and troubleshooting issues related to connections in TIBCO Cloud
Integration.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-cloud-integration-certified-professional-exam">TIBCO
Cloud Integration Certified Professional</a> - Checks the knowledge
about capabilities and benefits, integrating, developing, and connecting
applications, creating APIs using the API Modeler and Mock
functionality, and more.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-messaging-associate-certification-exam">TIBCO
Messaging Associate</a> - Covers topics such as TIBCO Enterprise Message
Service (EMS), TIBCO FTL, TIBCO eFTL, as well as other messaging
technologies such as Apache Kafka, Apache Pulsar, and Eclipse
Mosquitto.</li>
<li><a
href="https://www.tibco.com/services/education/certification/tibco-messaging-certified-professional-exam">TIBCO
Messaging Certified Professional</a> - Validates the skills and
knowledge required to work with TIBCO Messaging and its components,
including TIBCO Enterprise Message Service (EMS), TIBCO FTL, and TIBCO
eFTL.</li>
</ul>
</details>
<details>
<summary>
Workato
</summary>
<ul>
<li><a
href="https://academy.workato.com/enterprise-automation-i-exam">Workato
Automation Pro I</a> - Fundamentals of business automation
processes.</li>
<li><a
href="https://academy.workato.com/enterprise-automation-ii-exam">Workato
Automation Pro II</a> - Advanced and practical approaches to
automation.</li>
<li><a
href="https://academy.workato.com/automation-pro-iii-exam">Workato
Automation Pro III</a> - In-depth series of badged modules for
maximizing Workatos potential.</li>
</ul>
</details>
<details>
<summary>
WSO2
</summary>
<ul>
<li><a
href="https://wso2.com/training/certification/certified-api-manager-developer/">WSO2
Certified API Manager Developer - V3</a> - Assesses your expertise in
designing, developing, and publishing APIs using WSO2 API Manager V3,
including API lifecycle management, access control, and API
documentation.</li>
<li><a
href="https://wso2.com/training/certification/certified-api-manager-developer-v4-micro-integrator-profile/">WSO2
Certified API Manager Developer - V4 - Micro Integrator Profile</a> -
Validates your expertise in designing, developing, and publishing APIs
using the Micro Integrator profile of WSO2 API Manager V4. It covers API
lifecycle management, access control, and API documentation within the
Micro Integrator context.</li>
<li><a
href="https://wso2.com/training/certification/certified-api-manager-expert/">WSO2
Certified API Manager Expert - V3</a> - Confirms your advanced skills
and knowledge in using WSO2 API Manager V3 for API management, including
API creation, publishing, security, policy implementation, and
analytics.</li>
<li><a
href="https://wso2.com/training/certification/api-manager-expert-v4-api-management-profile/">WSO2
Certified API Manager Expert - V4 - API Management Profile</a> -
Demonstrates your proficiency in using WSO2 API Manager V4 for API
management tasks, such as creating, publishing, and securing APIs, as
well as implementing policies and analytics.</li>
<li><a
href="https://wso2.com/training/certification/certified-enterprise-integrator6-developer/">WSO2
Certified Enterprise Integrator Developer - V6</a> - Validates your
ability to develop, deploy, and manage integration solutions using WSO2
Enterprise Integrator V6, including knowledge of its components, such as
the ESB profile, Message Broker, and Business Process Server.</li>
<li><a
href="https://wso2.com/training/certification/certified-enterprise-integrator-developer-micro-integrator/">WSO2
Certified Enterprise Integrator Developer - V7 - Micro Integrator</a> -
Validates your knowledge and skills in using the Micro Integrator
profile of WSO2 Enterprise Integrator V7 to develop, deploy, and manage
integration solutions.</li>
<li><a
href="https://wso2.com/training/certification/certified-enterprise-integrator-developer-streaming-integrator/">WSO2
Certified Enterprise Integrator Developer - V7 - Streaming
Integrator</a> - Demonstrates your expertise in using the Streaming
Integrator profile of WSO2 Enterprise Integrator V7 to develop, deploy,
and manage real-time data integration and streaming analytics
solutions.</li>
<li><a
href="https://wso2.com/training/certification/certified-enterprise-integrator6-expert/">WSO2
Certified Enterprise Integrator Expert - V6</a> - Tests your in-depth
knowledge and skills in using WSO2 Enterprise Integrator V6 for complex
integration scenarios, including best practices, troubleshooting, and
performance tuning.</li>
<li><a
href="https://wso2.com/training/certification/certified-solutions-architect-associate/">WSO2
Certified Solutions Architect Associate</a> - Assesses your
understanding of the fundamental concepts and principles of WSO2 product
architecture, as well as your ability to design and implement solutions
using WSO2 technologies.</li>
</ul>
</details>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--></p>
<h3 id="connectors">Connectors</h3>
<ul>
<li><a href="https://projects.eclipse.org/projects/ee4j.jca">JCA</a> -
Defines a standard architecture for Jakarta EE application components to
connect to Enterprise Information Systems. Formerly Java EE Connector
Architecture and J2EE Connector Architecture.</li>
<li><a href="https://kafka.apache.org/documentation/#connect">Kafka
Connect</a> - A tool for scalably and reliably streaming data between
Apache Kafka and other systems.</li>
</ul>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Data Formats - <a
href="https://github.com/apache/avro">Apache Avro (⭐2.7k)</a> - Data
serialization system that provides compact, fast, and efficient
serialization of structured data. It supports schema evolution, allows
for efficient data compression, and is designed to work well with big
data processing frameworks. - <a href="https://bsonspec.org/">BSON</a> -
Binary-encoded serialization format for JSON-like documents that is
designed to be lightweight and efficient. It supports rich data types
and is widely used in NoSQL databases, such as MongoDB. - <a
href="https://datatracker.ietf.org/doc/html/rfc4180">CSV</a> - A simple
and widely used data format that stores tabular data in plain text. It
is easy to read and write, and can be processed by most programming
languages. - <a
href="https://datatracker.ietf.org/doc/html/rfc8259">JSON</a> - A
lightweight and easy-to-read data format that is widely used for data
exchange. It supports a wide range of data types and is compatible with
many programming languages. - <a
href="https://github.com/ndjson/ndjson-spec">NDJSON (⭐632)</a> - A
standard for delimiting JSON objects in stream protocols. It allows for
efficient processing of large JSON datasets and is widely used in big
data processing. - <a
href="https://github.com/protocolbuffers/protobuf">Protocol Buffers
(⭐63k)</a> - A language-neutral and platform-neutral serialization
mechanism that is designed to be highly efficient and extensible. It
supports rich data types and is widely used in distributed systems, such
as gRPC and Apache Kafka. - <a
href="https://www.w3.org/TR/xml11/">XML</a> - A flexible and widely used
markup language that is used for storing and exchanging structured data.
It supports rich data types and is compatible with many programming
languages. - <a href="https://github.com/yaml/yaml-spec">YAML
(⭐309)</a> - A human-friendly and easy-to-read data serialization
format that is widely used for configuration files and data exchange. It
supports rich data types and is compatible with most programming
languages.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Integration Styles - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/FileTransferIntegration.html">File
Transfer</a> - Data is exchanged through file exchange between
applications. - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/Messaging.html">Messaging</a>
- Applications exchange messages using a messaging infrastructure. - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/EncapsulatedSynchronousIntegration.html">Remote
Procedure Invocation</a> - Applications call functions or procedures on
a remote server over a network. - <a
href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/SharedDataBaseIntegration.html">Shared
Database</a> - Multiple applications access and manipulate the same data
through a common database.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Market Analysis - API Management - <a
href="https://www.gartner.com/doc/code/468184">Gartner Critical
Capabilities for Full Life Cycle API Management</a> - <a
href="https://www.gartner.com/doc/code/464116">Gartner Magic Quadrant
for Full Life Cycle API Management</a> - <a
href="https://www.forrester.com/go?objectid=RES159081">The Forrester
Wave: API Management Solutions</a> - BPM - <a
href="https://www.gartner.com/doc/code/292486">Gartner Critical
Capabilities for Intelligent Business Process Management Suites</a> - <a
href="https://www.gartner.com/doc/code/345694">Gartner Magic Quadrant
for Intelligent Business Process Management Suites</a> - ETL - <a
href="https://www.gartner.com/doc/code/464068">Gartner Critical
Capabilities for Data Integration Tools</a> - <a
href="https://www.gartner.com/doc/code/450251">Gartner Magic Quadrant
for Data Integration Tools</a> - iPaaS - <a
href="https://www.gartner.com/doc/code/434187">Gartner Critical
Capabilities for Enterprise Integration Platform as a Service</a> - <a
href="https://www.gartner.com/doc/code/397953">Gartner Magic Quadrant
for Enterprise Integration Platform as a Service</a> - <a
href="https://www.forrester.com/report/the-forrester-wave-tm-enterprise-ipaas-q4-2021/RES176201">The
Forrester Wave: Enterprise iPaaS</a> - RPA - <a
href="https://www.gartner.com/doc/code/465756">Gartner Critical
Capabilities for Robotic Process Automation</a> - <a
href="https://www.gartner.com/doc/code/441474">Gartner Magic Quadrant
for Robotic Process Automation</a> - <a
href="https://www.forrester.com/go?objectid=RES161538">The Forrester
Wave: Robotic Process Automation</a></p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Protocols - <a
href="https://www.rabbitmq.com/resources/specs/amqp0-9-1.pdf">AMQP
0-9-1</a> - A message queuing protocol that enables the exchange of
messages between applications or systems. AMQP 0-9-1 provides
reliability, security, and flexibility to handle complex messaging
scenarios. - <a
href="http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-overview-v1.0-os.html">AMQP
1.0</a> - A widely accepted message queuing protocol that provides
reliable, interoperable, and efficient messaging between systems. AMQP
1.0 supports a broad range of messaging scenarios and is ideal for
complex enterprise-level applications. - <a
href="http://coap.technology/">CoAP</a> - A specialized application
protocol designed for constrained devices in the Internet of Things
(IoT) ecosystem. CoAP offers a lightweight, low-overhead communication
mechanism to support resource-constrained devices. - <a
href="https://httpwg.org/specs/">HTTP</a> - A widely used protocol that
facilitates communication between web servers and clients. HTTP enables
the transfer of data over the internet, making it possible for web
applications to function seamlessly. - <a
href="https://www.jsonrpc.org/specification">JSON-RPC</a> - A simple and
lightweight remote procedure call protocol that enables communication
between systems using JSON data. JSON-RPC offers stateless communication
and is suitable for resource-constrained devices. - <a
href="https://mqtt.org/mqtt-specification/">MQTT</a> - A lightweight and
efficient publish-subscribe protocol that supports messaging between
devices. MQTT enables low-overhead communication and is ideal for IoT
and mobile applications. - <a
href="https://github.com/openmessaging/specification">OpenMessaging
(⭐286)</a> - A cloud native, vendor-neutral open specification for
distributed messaging. - <a href="https://www.w3.org/TR/soap/">SOAP</a>
- A messaging protocol that uses XML to enable communication between
systems. SOAP supports a wide range of messaging scenarios, including
distributed computing and enterprise applications. - <a
href="https://stomp.github.io/">STOMP</a> - A messaging protocol that
offers simple, text-oriented communication between systems. STOMP is
ideal for low-latency, high-performance messaging scenarios.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Standard APIs - <a
href="https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/">JDBC</a>
- A Java-based API that provides universal data access to relational
databases. JDBC offers a consistent and efficient way to access and
manipulate data, making it a popular choice among developers. - <a
href="https://javaee.github.io/jms-spec/">JMS</a> - A messaging API that
enables Java applications to send and receive messages. JMS supports
reliable messaging and is widely used in enterprise-level applications.
- <a
href="https://docs.microsoft.com/en-us/sql/odbc/reference/odbc-overview">ODBC</a>
- A widely accepted API that provides a standardized way to access data
from various database management systems. ODBC offers a consistent
interface to access data, making it easy to develop database
applications. - <a href="https://www.odata.org/">OData</a> - An open
protocol that enables the creation and consumption of queryable and
interoperable REST APIs. OData simplifies the development of REST APIs
and offers a standardized way to access data. - <a
href="https://github.com/standard-webhooks/standard-webhooks">Standard
Webhooks (⭐1k)</a> - Open source tools and guidelines for sending
webhooks easily, securely, and reliably.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ### Structure and Validation - <a
href="https://github.com/json-schema-org/json-schema-spec">JSON Schema
(⭐3.1k)</a> - A powerful tool for validating the structure of JSON
data. JSON Schema enables developers to ensure that JSON data conforms
to a specific structure, making it easier to process and manipulate. -
<a href="https://www.schematron.com">Schematron</a> - A rule-based
validation language that enables developers to define and validate
business rules, data reporting, quality control, and other validation
scenarios. Schematron offers a flexible way to validate XML documents. -
<a href="https://www.w3.org/TR/xmlschema11-1/">XML Schema</a> - A schema
language that offers facilities for describing the structure and
constraining the contents of XML documents. XML Schema enables
developers to ensure that XML data conforms to a specific structure,
making it easier to process and manipulate.</p>
<!--lint disable-->
<p><strong><a href="#contents">⬆ back to top</a></strong>
<!--lint enable--> ## Contributing Your contributions are always
welcome! Please take a look at the <a
href="https://github.com/stn1slv/awesome-integration/blob/main/CONTRIBUTING.md">contribution
guidelines</a> first.</p>