SlideShare a Scribd company logo
Brought to you by
Dejan Bosanac and Henryk Konsek
Eclipse Kapua
Messaging refactoring proposal
Dejan Bosanac
- Messaging rock star
:)
@dejanb
@hekonsek
Henryk Konsek
- engineer at Red Hat
- open source junkie
@hekosek@dejanb
@hekonsek
● Kapua messaging now
● How can we make it better?
● Action plan
This presentation
@dejanb
@hekonsek
Kapua messaging now
@hekonsek@dejanb
@hekonsek
Kapua messaging now
@hekonsek@dejanb
@hekonsek
Kapua messaging now
@hekonsek
- Authentication
- Apache Shiro state
- Connection metrics
- Device lifecycle events
All combined into a single ActiveMQ broker
uber-plugin.
@dejanb
@hekonsek
Implications
@hekonsek
- Kapua can be run on ActiveMQ only, as it relies
on ActiveMQ uber-plugin
- You cannot deploy Kapua services as
microservices (single VM limitation), as Shiro
context is bound to the broker thread
@dejanb
@hekonsek
Why is it bad?
@hekonsek
- Is very challenging to scale Kapua horizontally
- Not everybody has to prefer ActiveMQ as
messaging layer
- Kapua is not PaaS friendly
@dejanb
@hekonsek
Benefits of new approach
@hekonsek
- Kapua running on any AMQP 1.0 compliant messaging
middleware
- Migration to microservices architecture
- Scalability
- First step for Eclipse Hono integration
- Pluggable authentication support
- PaaS-enablement (for example running Kapua in
Kubernetes/OpenShift will be very easy)
@dejanb
@hekonsek
How can we make it
better?
@hekonsek@dejanb
@hekonsek
Warning!
@hekonsek
- Contract of existing MQTT clients (i.e. devices)
should be respected
- Device should not be aware that it talks to “new”
messaging backend
- Backward compatibility FTW!
@dejanb
@hekonsek
Starting point
@hekonsek@dejanb
@hekonsek
Step #1: Extract messaging
@hekonsek
- Extract messaging out of the Kapua JVM
- Messaging provider must support AMQP, may support MQTT
@dejanb
@hekonsek
Authentication
@hekonsek
- It is messaging layer responsibility to perform authentication if needed
- Kapua services should support multiple pluggable strategies to resolve
user/tenant from authenticated message
- Authentication can be optionally delayed and performed on service
level (authentication on message level, not connection level)
@dejanb
@hekonsek
Shiro context binding
@hekonsek
- Services use Camel + Shiro to hold security context
- The same way as Kapua does today, but outside the broker threads
and JVM
@dejanb
@hekonsek
Reference implementation
@hekonsek
- In reference implementation we can use Artemis broker
authentication against KeyCloak (or something else)
@dejanb
@hekonsek
Step #2: Extract metrics into library
@hekonsek
- Extract metrics logic into library
- You can use it on the service (Camel) level or…
- wrap it into msg middleware plugin (for example Artemis plugin)
Step #3: Extract lifecycle into library
@hekonsek
- the same as for metrics library :)
- If you messaging middleware doesn’t allow you to wire library into it
you need to compensate events logic in services layer
Action plan
@hekonsek@dejanb
@hekonsek
How can we do it?
@hekonsek
- I propose to keep existing broker plugin as it is
- Work on the alternative approach in parallel
- At some point just drop old plugin, switch to the
new architecture and celebrate :)
@dejanb
@hekonsek
Any volunteers?
@hekonsek
- Dejan and Henry
- We will handle that. Just give us a green light! ;)
- Any other volunteers are more than welcome!
@dejanb
@hekonsek
Henryk Konsek
@hekonsek
hekonsek@gmail.com
@hekonsek
Thank you!
Dejan Bosanac
@dejanb
dbosanac@redhat.com
@dejanb
@hekonsek

More Related Content

What's hot (20)

PDF
Manage your APIs and Microservices with an API Gateway
Thibault Charbonnier
 
PDF
Function Mesh: Complex Streaming Jobs Made Simple - Pulsar Summit NA 2021
StreamNative
 
PDF
Stream-Native Processing with Pulsar Functions
Streamlio
 
PPTX
SignalR for ASP.NET Developers
Shivanand Arur
 
PPTX
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
KCDItaly
 
PDF
SignalR
Troy Miles
 
PPTX
Opening Remarks - Pulsar Virtual Summit Europe 2021
StreamNative
 
PDF
Event-driven Applications with Kafka, Micronaut, and AWS Lambda | Dave Klein,...
HostedbyConfluent
 
PDF
API Gateway study
Rafael Gonzaga
 
PPTX
Building Micro-Services with Scala
Yardena Meymann
 
PPT
SignalR
William Austin
 
PPTX
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
HostedbyConfluent
 
PPTX
Real Time UI with Apache Kafka Streaming Analytics of Fast Data and Server Push
Lucas Jellema
 
PDF
Kong API
Patrick Pierson
 
PDF
Java Microservices with Netflix OSS & Spring
Conor Svensson
 
PPTX
SignalR with asp.net
Martin Bodocky
 
PDF
Joint OpenStack Kubernetes Environment (OpenStack Summit)
rhirschfeld
 
PDF
WTF Do We Need a Service Mesh?
Anton Weiss
 
PPTX
Gatekeeper: API gateway
ChengHui Weng
 
PDF
Understanding Kafka Produce and Fetch api calls for high throughtput applicat...
HostedbyConfluent
 
Manage your APIs and Microservices with an API Gateway
Thibault Charbonnier
 
Function Mesh: Complex Streaming Jobs Made Simple - Pulsar Summit NA 2021
StreamNative
 
Stream-Native Processing with Pulsar Functions
Streamlio
 
SignalR for ASP.NET Developers
Shivanand Arur
 
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
KCDItaly
 
SignalR
Troy Miles
 
Opening Remarks - Pulsar Virtual Summit Europe 2021
StreamNative
 
Event-driven Applications with Kafka, Micronaut, and AWS Lambda | Dave Klein,...
HostedbyConfluent
 
API Gateway study
Rafael Gonzaga
 
Building Micro-Services with Scala
Yardena Meymann
 
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
HostedbyConfluent
 
Real Time UI with Apache Kafka Streaming Analytics of Fast Data and Server Push
Lucas Jellema
 
Kong API
Patrick Pierson
 
Java Microservices with Netflix OSS & Spring
Conor Svensson
 
SignalR with asp.net
Martin Bodocky
 
Joint OpenStack Kubernetes Environment (OpenStack Summit)
rhirschfeld
 
WTF Do We Need a Service Mesh?
Anton Weiss
 
Gatekeeper: API gateway
ChengHui Weng
 
Understanding Kafka Produce and Fetch api calls for high throughtput applicat...
HostedbyConfluent
 

Viewers also liked (20)

PDF
Open source IoT gateway
Henryk Konsek
 
ODP
Using open source for IoT
Ian Skerrett
 
PDF
Fabric8 - Being devOps doesn't suck anymore
Henryk Konsek
 
PDF
Crash course to the Apache Camel
Henryk Konsek
 
PDF
(Ultra quick) Rhiot overview
Henryk Konsek
 
PDF
Internet Of Things for mere mortals
Henryk Konsek
 
PDF
Iot and the back-end developers
Henryk Konsek
 
PDF
Containerize! Between Docker and Jube.
Henryk Konsek
 
PDF
Iot gateway dream team - Eclipse Kura and Apache Camel
Henryk Konsek
 
PDF
Apache Camel in the belly of the Docker whale
Henryk Konsek
 
PPTX
Eclipse IOT stack over Intel Edison
Ankur Sharma
 
PPTX
Introduction to DevOps
Dmitry Buzdin
 
PPTX
Presentation
Laxman Kumar
 
PPTX
AD Authenticate All The Things
Alan Williams
 
PDF
Openshift v3-a-revolucao-dos-containers-3
Ricardo Martinelli de Oliveira
 
PDF
Keycloak で SSO #渋谷java
Yoshimasa Tanabe
 
PDF
Sprint 38 review
ManageIQ
 
PDF
Microservices with WildFly Swarm - JavaSI 2016
Charles Moulliard
 
PDF
Writing Java EE microservices using WildFly Swarm
Comsysto Reply GmbH
 
PDF
WildFly Swarm: Criando Microservices com Java EE 7
George Gastaldi
 
Open source IoT gateway
Henryk Konsek
 
Using open source for IoT
Ian Skerrett
 
Fabric8 - Being devOps doesn't suck anymore
Henryk Konsek
 
Crash course to the Apache Camel
Henryk Konsek
 
(Ultra quick) Rhiot overview
Henryk Konsek
 
Internet Of Things for mere mortals
Henryk Konsek
 
Iot and the back-end developers
Henryk Konsek
 
Containerize! Between Docker and Jube.
Henryk Konsek
 
Iot gateway dream team - Eclipse Kura and Apache Camel
Henryk Konsek
 
Apache Camel in the belly of the Docker whale
Henryk Konsek
 
Eclipse IOT stack over Intel Edison
Ankur Sharma
 
Introduction to DevOps
Dmitry Buzdin
 
Presentation
Laxman Kumar
 
AD Authenticate All The Things
Alan Williams
 
Openshift v3-a-revolucao-dos-containers-3
Ricardo Martinelli de Oliveira
 
Keycloak で SSO #渋谷java
Yoshimasa Tanabe
 
Sprint 38 review
ManageIQ
 
Microservices with WildFly Swarm - JavaSI 2016
Charles Moulliard
 
Writing Java EE microservices using WildFly Swarm
Comsysto Reply GmbH
 
WildFly Swarm: Criando Microservices com Java EE 7
George Gastaldi
 
Ad

More from Henryk Konsek (7)

PDF
How to cloud #1: Create Kafka cluster with Confluent Cloud
Henryk Konsek
 
PDF
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
Henryk Konsek
 
PDF
Internet Of Things for mere mortals
Henryk Konsek
 
PDF
Docker for mere mortals
Henryk Konsek
 
PDF
Messaging with the Docker
Henryk Konsek
 
PDF
Spring scala - Sneaking Scala into your corporation
Henryk Konsek
 
PDF
Testing Fuse Fabric with Pax Exam
Henryk Konsek
 
How to cloud #1: Create Kafka cluster with Confluent Cloud
Henryk Konsek
 
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
Henryk Konsek
 
Internet Of Things for mere mortals
Henryk Konsek
 
Docker for mere mortals
Henryk Konsek
 
Messaging with the Docker
Henryk Konsek
 
Spring scala - Sneaking Scala into your corporation
Henryk Konsek
 
Testing Fuse Fabric with Pax Exam
Henryk Konsek
 
Ad

Recently uploaded (20)

PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Python basic programing language for automation
DanialHabibi2
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 

Eclipse Kapua messaging refactoring proposal

  • 1. Brought to you by Dejan Bosanac and Henryk Konsek Eclipse Kapua Messaging refactoring proposal
  • 2. Dejan Bosanac - Messaging rock star :) @dejanb @hekonsek
  • 3. Henryk Konsek - engineer at Red Hat - open source junkie @hekosek@dejanb @hekonsek
  • 4. ● Kapua messaging now ● How can we make it better? ● Action plan This presentation @dejanb @hekonsek
  • 7. Kapua messaging now @hekonsek - Authentication - Apache Shiro state - Connection metrics - Device lifecycle events All combined into a single ActiveMQ broker uber-plugin. @dejanb @hekonsek
  • 8. Implications @hekonsek - Kapua can be run on ActiveMQ only, as it relies on ActiveMQ uber-plugin - You cannot deploy Kapua services as microservices (single VM limitation), as Shiro context is bound to the broker thread @dejanb @hekonsek
  • 9. Why is it bad? @hekonsek - Is very challenging to scale Kapua horizontally - Not everybody has to prefer ActiveMQ as messaging layer - Kapua is not PaaS friendly @dejanb @hekonsek
  • 10. Benefits of new approach @hekonsek - Kapua running on any AMQP 1.0 compliant messaging middleware - Migration to microservices architecture - Scalability - First step for Eclipse Hono integration - Pluggable authentication support - PaaS-enablement (for example running Kapua in Kubernetes/OpenShift will be very easy) @dejanb @hekonsek
  • 11. How can we make it better? @hekonsek@dejanb @hekonsek
  • 12. Warning! @hekonsek - Contract of existing MQTT clients (i.e. devices) should be respected - Device should not be aware that it talks to “new” messaging backend - Backward compatibility FTW! @dejanb @hekonsek
  • 14. Step #1: Extract messaging @hekonsek - Extract messaging out of the Kapua JVM - Messaging provider must support AMQP, may support MQTT @dejanb @hekonsek
  • 15. Authentication @hekonsek - It is messaging layer responsibility to perform authentication if needed - Kapua services should support multiple pluggable strategies to resolve user/tenant from authenticated message - Authentication can be optionally delayed and performed on service level (authentication on message level, not connection level) @dejanb @hekonsek
  • 16. Shiro context binding @hekonsek - Services use Camel + Shiro to hold security context - The same way as Kapua does today, but outside the broker threads and JVM @dejanb @hekonsek
  • 17. Reference implementation @hekonsek - In reference implementation we can use Artemis broker authentication against KeyCloak (or something else) @dejanb @hekonsek
  • 18. Step #2: Extract metrics into library @hekonsek - Extract metrics logic into library - You can use it on the service (Camel) level or… - wrap it into msg middleware plugin (for example Artemis plugin)
  • 19. Step #3: Extract lifecycle into library @hekonsek - the same as for metrics library :) - If you messaging middleware doesn’t allow you to wire library into it you need to compensate events logic in services layer
  • 21. How can we do it? @hekonsek - I propose to keep existing broker plugin as it is - Work on the alternative approach in parallel - At some point just drop old plugin, switch to the new architecture and celebrate :) @dejanb @hekonsek
  • 22. Any volunteers? @hekonsek - Dejan and Henry - We will handle that. Just give us a green light! ;) - Any other volunteers are more than welcome! @dejanb @hekonsek