Hello Solace Community members!
I am a product manager at Solace and my portfolio is all things integration.
Today, I am pleased to release to you the Early Access version of the brand-new Micro-Integration Development Kit (MDK)!!
The Solace MDK is a developer-focused, SDK for creating custom Micro-Integrations (aka Connectors).
What is a Micro-Integration?
Here’s a refresher…
Micro-integrations are small, lightweight event-driven integration modules that connect enterprise technologies (legacy and SaaS applications, messaging services, databases, files, AI agents etc.) to an event-driven distribution layer, so they can exchange information in real-time.
Micro-integrations are to integration and connectivity what microservices are to application architectures: they decompose a monolithic integration flow into smaller, more manageable, purpose-built components.
A micro-integration includes a source or target connector which establishes data flow between an event distribution layer such as an event broker or an event mesh and some other source or target system. They can (but do not always) also include one or more functions that modify the message’s content such as payload transformation, data enrichment/validation, or header modification. See more about micro-integrations here in our FAQ: What are micro-integrations? | Solace
The MDK includes 3 main areas you will be familiar with from other SDKs:
-
Tooling that assists in the project scaffolding and build process for your custom Micro-Integration
-
Samples to show you some examples of what you will need to code to create your Micro-Integration. This includes a full, end-to-end Micro-Integration that uses a very simple REST-based queuing system as the source or target where the Solace broker is the other side.
-
Documentation on how to use the above tooling and samples, as well as some reference docs (javadocs) on the Solace MI framework.
The MDK is being released as “Early Access” because we want developers like yourselves to get hands on with it and provide feedback before we declare it “done” and fully release it.
The architecture of Solace Micro-Integrations is:
-
Spring Cloud Stream binders are used for all data access.
-
The Solace Spring Cloud Stream binder has been available for over 4 years and is open source (found here)
-
A binder to access the data from your external service, whatever that is, would be the main development required for a custom Micro-Integration using this MDK.
-
-
The binders provide the source/consumer data access and the target/publisher data access with the Solace binder always being 1 of source or target and your external, custom binder being the “other side”.
-
The Solace Micro-Integration Framework is in the “middle” and takes data from the source binder, processes it with optional message transforms (which allow you to modify headers and/or payload as they move from source to target) and provides other framework services like acknowledgment management that prevents data loss in the framework.
-
The 2 binders and framework are combined into a single uber-JAR which runs as a Spring Boot application. This packaging also provides:
-
Logging via Logback
-
Metrics via Micrometer
-
REST endpoints for information on your running MI via Spring Actuator/Tomcat
-
Security on those endpoints via Spring Security
-
and other enterprise runtime features like failover
-
-
The tooling also provides a process that builds your MI into a container image usable in Docker, Podman, Kubernetes, and other container runtimes
The intended audience for this MDK is someone familiar with Java development, especially using Spring projects. The most code you will write is the external binder as the framework and Solace binders are already included and complete. This tooling can also be used for existing Spring Cloud Stream binders should you come across these in the Spring community/ecosystem.
Note the MDK is for creating self-managed Micro-Integrations. Cloud-managed, custom MIs are something we are considering but at this point, the MDK is for self-managed only.
We look forward to your feedback. Please feel free to start or add to threads here on the Community. We will focus on our support of the MDK EA here.