SlideShare a Scribd company logo
1© 2019 Rogue Wave Software, Inc. All Rights Reserved.
2© 2019 Rogue Wave Software, Inc. All Rights Reserved.
Justin Reock
Chief Architect
Rogue Wave Software
Justin has over 20 years’ experience
working in various software roles and is
an outspoken free software
evangelist, delivering enterprise
solutions and community education on
databases, integration work,
architecture, and technical leadership.
He is currently the Chief Architect at
Rogue Wave Software.
3© 2019 Rogue Wave Software, Inc. All Rights Reserved.
4© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• I’m going to show you three slides
• They all have something in common….
• See if you can figure out what it is!

Recommended for you

Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...

"So, you have built/inherited/discovered one of your many Kafka clusters. How now do you know that it is good enough to sustain and grow your applications? Do you stress test it as a data store, a messaging system, as middleware, or like a REST API? Or are you in production and worried about the next unprecedented surge? Find out from those who have asked and answered before. Repeatable, and recordable stress testing for Kafka is a challenge for novices and some legends. Real supplies like storage, compute, network, threads etc. do not naturally map to demands of messages, bytes, and milliseconds. In the session, we will cover ways to: * Define parameters and variables before beginning * Accommodate for changing conditions - brokers, applications, config, network * Overlap infrastructure, test design, latency, and throughput * Meet cost, service level agreements, and multi-tenancy needs while testing * Do it all without entirely relying on estimation, and extrapolation We will also discuss common and innovative practices observed in the industry to meet this challenge. At the end of the session, you would walk away with the knowledge needed to set up a repeatable stress test suite without stress."

apache kafkakafka summitstress test kafka
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producer

Badai Aqrandista, Confluent, Senior Technical Support Engineer This session will be about a common issue in the Kafka Producer: producer batch expiry. We will be discussing the Kafka Producer internals, its common causes, such as a slow network or small batching, and how to overcome them. We will also be sharing some examples along the way! https://www.meetup.com/apache-kafka-sydney/events/279651982/

apache kafka
Storage Capacity Management on Multi-tenant Kafka Cluster with Nurettin Omeroglu
Storage Capacity Management on Multi-tenant Kafka Cluster with Nurettin OmerogluStorage Capacity Management on Multi-tenant Kafka Cluster with Nurettin Omeroglu
Storage Capacity Management on Multi-tenant Kafka Cluster with Nurettin Omeroglu

"I will be presenting how we do the smart/automated capacity management on Multi-tenant Kafka cluster in Booking.com. It was a long journey. In this end to end story, I will be presenting what the issues were at the beginning, how we came up with a plan, designed, implemented, and applied to our existing clusters smoothly, now how the clients can monitor and even get alerted before their reserved capacity has been reached. What were the challenges and our learnings? What is next? Why? In Booking.com, the infra team manages 60 different Kafka clusters with hundreds of topics in each. There are clusters running with hundred brokers. As there are hundreds of Kafka clients from tens of different departments, it is high likely some of the clients start abusing the cluster. Especially during peak times, when the retention was set as retention.ms, or when the underlying message size changes, it is hard to predict what would be the occupied storage in total. Finding the relevant clients, deciding which data to discard, dealing with so many unknowns in a short period of time can be hassle. Also these are not fun activities but just a toil for the team. What? To avoid such boring issues, the team has chosen the path to build a smart mechanism and have quotas in place. It helped saving time developing new features instead of chasing people to resolve collisions. You can think that as an extension to the built-in throttling producer/consumer rate limits provided by the Apache Kafka, but it is much more than that. There are several components will be explained during the presentation one of them is our control plane (custom built) which manages the communication between clients and servers and does many things automated. Another one is the Custom Policies that we plugged in on the Kafka side to validate the configuration even tried (malicious configuration) on the server side. The talk guarantees learning and shows examples of Kafka at scale problems in Booking.com."

capacity managementkafka cluserkafka summit
5© 2019 Rogue Wave Software, Inc. All Rights Reserved.
6© 2019 Rogue Wave Software, Inc. All Rights Reserved.
7© 2019 Rogue Wave Software, Inc. All Rights Reserved.
BillingFulfillment
CRME-Commerce
8© 2019 Rogue Wave Software, Inc. All Rights Reserved.
 None of these things exist in real life!

Recommended for you

Introducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes OperatorIntroducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes Operator

Flink Forward San Francisco 2022. The Apache Flink Kubernetes Operator provides a consistent approach to manage Flink applications automatically, without any human interaction, by extending the Kubernetes API. Given the increasing adoption of Kubernetes based Flink deployments the community has been working on a Kubernetes native solution as part of Flink that can benefit from the rich experience of community members and ultimately make Flink easier to adopt. In this talk we give a technical introduction to the Flink Kubernetes Operator and demonstrate the core features and use-cases through in-depth examples." by Thomas Weise

stream processingbig dataapache flink
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用

【適用於 FHIR R4 版本】 簡介 FHIR 資料結構,使用 Postman 測試 API 並且實作臨床檢驗資料與病人資料登錄表單/管理系統。 本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權, (授權網址:https://creativecommons.org/licenses/by-sa/4.0/deed.zh_TW) 歡迎多加參考與利用。

hl7fhirrestful
PostgreSQL and CockroachDB SQL
PostgreSQL and CockroachDB SQLPostgreSQL and CockroachDB SQL
PostgreSQL and CockroachDB SQL

Co-Founder Peter Mattis presented this deck to the NYC PostgreSQL User Group on Nov. 4, 2015. It compares PostgreSQL to CockroachDB SQL- logical data structures, kv layers, data storage, online schema changes, and more.

sqlcockroachdbpostgresql
9© 2019 Rogue Wave Software, Inc. All Rights Reserved.
10© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Technically, MOM is any platform that sends and receives
messages between distributed applications
• This allows for asynchronous processing, and normalization of
data exchanges
• Clients connect to a messaging provider, and send and receive
messages via that provider
11© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Data normalization makes it a lot easier for disparate applications to
trade information
• Just like in web services, heterogeneous systems can agree on a data
“contract” and send and receive data in that format
• All the application needs is a client compatible with the messaging
provider
• And since messages are allowed to queue up on the message provider,
it also makes it very easy to perform asynchronous processing
• Most message providers offer additional benefits, like guaranteed
delivery, options for traffic shaping, high availability, and scaling
12© 2019 Rogue Wave Software, Inc. All Rights Reserved.

Recommended for you

Deploying Confluent Platform for Production
Deploying Confluent Platform for ProductionDeploying Confluent Platform for Production
Deploying Confluent Platform for Production

Presented by Gwen Shapira as part 1 of 5 in the Best Practices for Apache Kafka in Production, Confluent Online Talk Series

apache kafkaconfluent
File Format Benchmark - Avro, JSON, ORC & Parquet
File Format Benchmark - Avro, JSON, ORC & ParquetFile Format Benchmark - Avro, JSON, ORC & Parquet
File Format Benchmark - Avro, JSON, ORC & Parquet

This document summarizes a benchmark study of file formats for Hadoop, including Avro, JSON, ORC, and Parquet. It found that ORC with zlib compression generally performed best for full table scans. However, Avro with Snappy compression worked better for datasets with many shared strings. The document recommends experimenting with the benchmarks, as performance can vary based on data characteristics and use cases like column projections.

hadoop summit
Hashicorp Vault Open Source vs Enterprise
Hashicorp Vault Open Source vs EnterpriseHashicorp Vault Open Source vs Enterprise
Hashicorp Vault Open Source vs Enterprise

The document compares Vault Open Source and Vault Enterprise. Vault Open Source provides centralized secrets management and dynamic secrets within a single datacenter. Vault Enterprise adds replication across datacenters for disaster recovery, team tools like namespaces and control groups, and governance/compliance features like Sentinel policy enforcement and FIPS compliance.

hashicorphashicorp vaultdevops
13© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• ActiveMQ is a Java-based multi-purpose messaging middleware solution,
called a message broker, designed for high throughput and scale
• It is useful in a number of situations, including aggregating large amounts of
data in an efficient and safe manner, federating disparate or heterogeneous
applications across an enterprise, and/or moving data between
geographically separated data centers or applications
• ActiveMQ supports a number of connection protocols, allowing it to provide
connection points between applications coded in different languages, such as
Java, C++, .NET, PHP, etc
• Customers commonly migrate to ActiveMQ from commercial middleware
such as WebSphereMQ, Oracle AQ, TIBCO EMS, and/or MSMQ
14© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• ActiveMQ is a mature and well-adopted platform, with thousands of companies
using it, and backed by a strong community
• It is by far the most flexible OSS message broker available, offering integration
points for dozens of application frameworks and languages
• ActiveMQ ships with Apache Camel, one of the most revolutionary integration
frameworks available, and shares developers and committers with the Apache
Camel product
• ActiveMQ can be tuned for massive scale, supporting large data sets, such as
those generated by the CERN large hadron collider
• Its configuration can support numerous traffic and implementation models
• ActiveMQ has a powerful statistics and metrics engine, exposing crucial details
about the health of the broker and the amount and size of message traffic and
client status
15© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• ActiveMQ acts as integration middleware, sitting between
various enterprise applications, data sources, and APIs, and
“federating” data between the systems
16© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• ActiveMQ can also be used as a reliable message buffer
• Applications can send messages into ActiveMQ and continue
working, knowing that ActiveMQ will guarantee delivery of
the message
• Or, ActiveMQ can be used to broadcast messages to several
different systems
• ActiveMQ supports transactions between the broker and
the client, so that exceptions can be caught and managed
• Using these constructs, you can easily create asynchronous
message patterns by sending or receiving messages from
ActiveMQ

Recommended for you

Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...

Apache Kafka is one of the best known enterprise grade message brokers – created at LinkedIn, donated to the Apache software foundation and used in an ever growing number of organizations to provide a backbone for asynchronous communication. This session introduces Apache Kafka – history, concepts, community and tooling. In a hands on lab, participants will create topics, publish and consume messages and get a general feel for Kafka. Simple microservices are developed in NodeJS – publishing to and consuming from Apache Kafka. Dapr.io has support for Apache Kafka. Using Kafka through Dapr is very straightforward as is explained and demonstrated and applied in a second handson lab – with applications in various programming languages. Participants will even be able to exchange events across their laptops – through a cloud based Kafka broker. Use of Apache Kafka in several architecture patterns is discussed – such as data integration, microservices, CQRS, Event Sourcing – along with a number of real world use cases from several well known organizations. The Kafka Connector framework is introduced – a set of adapters that allow us to easily connect Kafka to sources and sinks – where respectively change events are captured from and messages are published to. Bonus Lab: Apache Kafka is ran on Kubernetes as is Dapr.io. Multiple mutually interacting microservices are deployed on the same local Kubernetes cluster.

kafkaapache kafkamicroservices
Vault Open Source vs Enterprise v2
Vault Open Source vs Enterprise v2Vault Open Source vs Enterprise v2
Vault Open Source vs Enterprise v2

This document discusses HashiCorp Vault, a tool for secrets management. It was founded in 2012 and enables provisioning, securing, connecting, and running infrastructure for applications across clouds. The document outlines how Vault provides centralized management of dynamic secrets, encryption as a service, and secure storage of secrets. It also describes Vault Enterprise features like replication, team tools for access control and multi-factor authentication, and governance/compliance features like Sentinel rules. An example case study of Adobe using Vault is also provided.

hashicorpdevsecops
Describing Kafka security in AsyncAPI
Describing Kafka security in AsyncAPIDescribing Kafka security in AsyncAPI
Describing Kafka security in AsyncAPI

This session will quickly show you how to describe the security configuration of your Kafka cluster in an AsyncAPI document. And if you've been given an AsyncAPI document, this session will show you how to use that to configure a Kafka client or application to connect to the cluster, using the details in the AsyncAPI spec.

asyncapikafkascram
17© 2019 Rogue Wave Software, Inc. All Rights Reserved.
Message grouping
Scheduled messages
Security framework
Metrics and
statistics
Network of Brokers
Inactivity monitoring
Transactions
Fault tolerance
Traffic Shaping
Plugin stack
Virtual destinations
Temporary destinations
Transformation
Load balancing
Client failover
Property encryption
Destination policies
Dispatch policies
Producer flow control
Message swapping
And of course… Camel!
18© 2019 Rogue Wave Software, Inc. All Rights Reserved.
19© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• So, data routing and transformation in the Enterprise lends itself to a
lot of what you would call “boilerplate” code
• Boilerplate text, in publishing, is text that can be used and reused in
many places
• Boilerplate code is the same concept
• How many times have you written code to open up a web server,
push a file to an ftp site or drop a message into a message broker?
• Have you ever felt that you’re just writing different versions of the
same thing over and over again?
• You’re not alone
• Enter the concept of an Enterprise Integration Pattern…
20© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Camel is an open source MOM language developed by Apache and based
on Enterprise Integration Patterns
• Book by Gregor Hohpe and Bobby Woolf
• Centers around 60+ common patterns found in
Enterprise integration projects
• Defines these common patterns in a vendor
neutral way
• Camel aims to provide a language which
implements these patterns, in a style modeled
after the UNIX pipeline

Recommended for you

Faceted Search with Lucene
Faceted Search with LuceneFaceted Search with Lucene
Faceted Search with Lucene

Faceted search is a powerful technique to let users easily navigate the search results. It can also be used to develop rich user interfaces, which give an analyst quick insights about the documents space. In this session I will introduce the Facets module, how to use it, under-the-hood details as well as optimizations and best practices. I will also describe advanced faceted search capabilities with Lucene Facets.

lucene/solr revolutionlucene/solrsolr
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics

Building Cloud-Native App Series - Part 3 of 11 Microservices Architecture Series AWS Kinesis Data Streams AWS Kinesis Firehose AWS Kinesis Data Analytics Apache Flink - Analytics

awskinesisaws kinesis
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive Mode

Flink Forward San Francisco 2022. Resource Elasticity is a frequently requested feature in Apache Flink: Users want to be able to easily adjust their clusters to changing workloads for resource efficiency and cost saving reasons. In Flink 1.13, the initial implementation of Reactive Mode was introduced, later releases added more improvements to make the feature production ready. In this talk, we’ll explain scenarios to deploy Reactive Mode to various environments to achieve autoscaling and resource elasticity. We’ll discuss the constraints to consider when planning to use this feature, and also potential improvements from the Flink roadmap. For those interested in the internals of Flink, we’ll also briefly explain how the feature is implemented, and if time permits, conclude with a short demo. by Robert Metzger

stream processingbig dataapache flink
21© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Content Based Router
– Where a message is routed to disparate endpoints
based on message criteria
22© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Content Enricher
– In which a basic message enters the pattern, takes data from
another source, and then adds it to the message
23© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Recipient List
– A message is broadcast to n channels based on message criteria. When this message is
broadcast to all channels regardless, it becomes a Multicast pattern
24© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Scatter-Gather
– In which messages are broadcast out to disparate endpoints and results are
aggregated into a single message

Recommended for you

Grafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for LogsGrafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for Logs

Loki is a horizontally-scalable, highly-available log aggregation system inspired by Prometheus. It is designed to be very cost-effective and easy to operate, as it does not index the contents of the logs, but rather labels for each log stream. In this talk, we will introduce Loki, its architecture and the design trade-offs in an approachable way. We’ll both cover Loki and Promtail, the agent used to scrape local logs to push to Loki, including the Prometheus-style service discovery used to dynamically discover logs and attach metadata from applications running in a Kubernetes cluster. Finally, we’ll show how to query logs with Grafana using LogQL - the Loki query language - and the latest Grafana features to easily build dashboards mixing metrics and logs.

grafanalokilogs
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...

So you know you want to write a streaming app, but any non-trivial streaming app developer would have to think about these questions: – How do I manage offsets? – How do I manage state? – How do I make my Spark Streaming job resilient to failures? Can I avoid some failures? – How do I gracefully shutdown my streaming job? – How do I monitor and manage my streaming job (i.e. re-try logic)? – How can I better manage the DAG in my streaming job? – When do I use checkpointing, and for what? When should I not use checkpointing? – Do I need a WAL when using a streaming data source? Why? When don’t I need one? This session will share practices that no one talks about when you start writing your streaming app, but you’ll inevitably need to learn along the way.

spark summitapache spark
The forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for youThe forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for you

This is a classic example of older technology not being used to its fullest, which Justin proves by walking through little-known configuration and optimization tricks that get data flowing reliably and efficiently – even for today’s complexity and scale. This session covers: A – Camel basics, understanding Exchanges, Routes, and how to implement EIPs with them B – Examples of real implementations of common EIPs like Content Based Routers and Recipient Lists C – Integration of Camel with common endpoints, like JMS, FTP, and HTTP

apache camelenterprise integration patternsopen source software
25© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Camel is maintained by the Apache Camel community
• It is a top-level project hosted at http://camel.apache.org
• The project’s chief maintainer is Claus Ibsen, author of Camel in Action
• As of August of 2017, the project has had almost 400 distinct committers, spanning over
30,000 commits
• It is written primarily in Java, and also contains some Scala code
• The project is licensed under the ALv2 (Apache License v2.0), which is considered a permissive
license
• So, Camel has been folded in to many other projects, including the Mule ESB and the
Switchyard project
• Camel can be run standalone, packaged into a WAR, or deployed as an OSGI bundle
• A POJO syntax as well as a Spring DSL XML syntax are made available for developers
26© 2019 Rogue Wave Software, Inc. All Rights Reserved.
27© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• ActiveMQ needs to be able to persist messages in
something called a persistence journal
• This way, if the broker crashes, it can replay unsent
messages when it comes back up
• And Camel is just plain hungry for endpoints, and
databases are no exception!
Postgres works great with ActiveMQ and Camel!
28© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• ActiveMQ needs a
persistence journal to
manage High Availability
• The default is a NoSQL
database called KahaDB
• The default is fast, but
difficult to replicate leading
to a SPOF architecture

Recommended for you

ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and CamelZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel

The modern enterprise landscape is a hybrid of heterogeneous technologies and disparate endpoints. In this session, we’ll discuss ways that you can leverage the flexibility and sophistication of ActiveMQ’s message processing and Camel’s normalized routing to federate your front-end applications with back end services. Beyond integration, we’ll discuss the user experience benefits that come with processing tasks asynchronously, rather than forcing a user to wait for a task to complete interactively. The ActiveMQ and Camel communities have made innovative leaps in the last few years, and we’ll look at what is available to you within these powerful, open source platforms.

activemq camel jms integration
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud

Java SE is ideal for building lightweight microservices and those services are increasingly being deployed to the cloud. Cloud platforms are attractive deployment targets due to their high availability, affordability, ease of management, and access to services like object storage, messaging, and databases. And when well architected, Cloud Java apps exhibit a number of qualities like portability, updatability, configurability, composability, and scalability.

oraclejavajava ee
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloudIBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud

This talk was presented at the Kafka Meetup London meeting on 20 January 2016. You can find more information about Message Hub here: http://ibm.biz/message-hub-bluemix-catalog

bluemix ibm kafka
29© 2019 Rogue Wave Software, Inc. All Rights Reserved.
When should I use…
Postgres/JDBC? KahaDB?
• I need true no-SPOF HA
• Throughput is less important
• I need to easily introspect
messages in the persistence
store
• I want familiar backup and
replication
• I don’t need true no-SPOF
HA
• Throughput is the most
important aspect
• I can lose messages or don’t
need to introspect them
• I can rely on storage backup
30© 2019 Rogue Wave Software, Inc. All Rights Reserved.
Quick reality check…
KahaDB
Postgres w/
Pooling
Postgres w/o
Pooling
31© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• You can initialize Postgres as an ActiveMQ Persistence
Journal in a few simple steps:
– Configure Postgres with an ActiveMQ User and
Database
– Copy Postgres JDBC driver into ActiveMQ Classpath
– Configure ActiveMQ Persistence Adapter and Pooling
– Disable automatic schema creation going forward
32© 2019 Rogue Wave Software, Inc. All Rights Reserved.
Several components are used to connect…
ActiveMQ Code
Third-party
or
PGPooling
Postgres Code

Recommended for you

MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...

MySQL Shell is an interactive multi-language console interface that supports development and administration for the MySQL Server. It can be used to perform data queries or updates, and administration operations through scriptable DevOps APIs. It is by nature a unified interface for all DevOps tasks related to MySQL, supporting SQL, JavaScript and Python, with an extensive set of features for both developers and DBAs. This session demonstrates how can a DevOps-engineer day be better with the MySQL Shell. From the development tasks to the operations, culminating in the management of MySQL InnoDB Cluster (The HA solution for MySQL) with the most recent and advanced features. Session presented at pre-FOSDEM MySQL Day 2019 (https://lefred.be/content/pre-fosdem-mysql-day-2019/)

mysqlmysql-shellmysql8
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!

A sound back-end framework plays a crucial role in architecting a high-performing application. Check out the most popular back-end frameworks that you need to consider in 2022 - Laravel with 67,902 repository stars, Django with 61.614 stars, Flask with 57.681 stars, ExpressJS with 55.520 stars, Ruby on Rails with 49,840 stars, and Spring with 45,609 stars.

mobile application development services
5 strategies for enterprise cloud infrastructure success
5 strategies for enterprise cloud infrastructure success5 strategies for enterprise cloud infrastructure success
5 strategies for enterprise cloud infrastructure success

Whether starting from greenfield or modernizing existing infrastructure, how do you remove the guesswork in deploying and maintaining cloud-based, business-critical workloads? From architectural decisions to fine-tuning scale and performance, our open source architects explain how top enterprises build and maintain their open source stacks, focusing on operational agility and cost-effectiveness. You will walk away with real use case examples and five ways to better plan and deliver your next cloud strategy.

cloud infrastructureopen sourceopen infrastructure
33© 2019 Rogue Wave Software, Inc. All Rights Reserved.
From a fresh install…
34© 2019 Rogue Wave Software, Inc. All Rights Reserved.
pg_hba.conf
Adjust your trust settings accordingly for your environment…
35© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• ActiveMQ’s default classpath is in the /lib directory of
the installation root
36© 2019 Rogue Wave Software, Inc. All Rights Reserved.
Create a Bean reference in /conf/activemq.xml
<bean id="postgres-ds"
class="org.postgresql.ds.PGPoolingDataSource"
destroy-method="close">
<property name="serverName" value="localhost"/>
<property name="databaseName" value="activemq"/>
<property name="portNumber" value="0"/>
<property name="user" value="activemq"/>
<property name="password" value="activemq"/>
<property name="dataSourceName" value="postgres"/>
<property name="initialConnections" value="1"/>
<property name="maxConnections" value="10"/>
</bean>

Recommended for you

Making Apache Camel work for you
Making Apache Camel work for you Making Apache Camel work for you
Making Apache Camel work for you

Apache Camel is eight years old, and some say it's effectiveness as the glue between components has diminished. "Our open source experts say, "Not so!" This is a classic example of older technology not being used to its fullest in favor of the latest and greatest. By walking through little known configuration and optimization tricks to get data flowing reliably and efficiently - even for today's complexity and scale - this session proves that older technology is often still the best solution.

enterprise integration patternsapacheeip
Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015
Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015
Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015

WebSphere Application Server has flexible deployment options for cloud environments. It can run on IBM public clouds with BYOSL or PAYG models, as well as on SoftLayer's dedicated or virtual private clouds. A current promotion allows customers to use their existing WebSphere Application Server licenses on SoftLayer at no additional charge. This provides opportunities to leverage cloud economics while maintaining control and security on premise.

MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...
MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...
MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...

MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilities - API Proxy and API Auto Discovery

anypoint studioapisbeginners
37© 2019 Rogue Wave Software, Inc. All Rights Reserved.
Set the <persistenceAdapter> to JDBC and reference the bean
<persistenceAdapter>
<jdbcPersistenceAdapter dataSource="#postgres-ds"
createTablesOnStartup=”true” />
</persistenceAdapter>
 Remember that createTablesOnStartup setting…..
38© 2019 Rogue Wave Software, Inc. All Rights Reserved.
Fire up the broker and check the persistence…
 Looks good, lets check out the schema …..
39© 2019 Rogue Wave Software, Inc. All Rights Reserved.
Lets see all tables…
40© 2019 Rogue Wave Software, Inc. All Rights Reserved.
Our ACK Table…

Recommended for you

AWS Initiate Day Dublin 2019 – Breaking down the Monoliths
AWS Initiate Day Dublin 2019 – Breaking down the MonolithsAWS Initiate Day Dublin 2019 – Breaking down the Monoliths
AWS Initiate Day Dublin 2019 – Breaking down the Monoliths

The document discusses monolithic applications and microservices. It defines monoliths as traditional applications developed to best practices at the time that were not designed to be distributed. Microservices are defined as independently deployable services that work together and are modeled around business domains. The document discusses how Amazon transformed from monoliths to microservices and describes benefits of microservices like improved modularity, scalability, and faster release cycles. It also covers microservice design principles like bounded contexts and messaging patterns to connect microservices using services like SNS and SQS.

initiatedaydublin2019
Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)

This isn’t your typical case study, this is the reality of open source: One hundred percent of organizations use varying degrees of OSS, yet we still focus on one particular package or layer when it comes to sharing best practices. The reality is, when we get stuck, it’s the configuration and operational interrelationships between packages that matter. This session takes open source support data across multiple organizations to examine three different scenarios that represent the most common issues we see today (in fact, 80% of the cases we see are due to configuration and package interrelationship issues). Justin Reock covers e-commerce, mobile PaaS, and high performance computing examples to illustrate top problems and solutions for stack selection, infrastructure implementation, and production troubleshooting.

open sourceuse caseopen source software
Open Source Applied - Real World Use Cases
Open Source Applied - Real World Use CasesOpen Source Applied - Real World Use Cases
Open Source Applied - Real World Use Cases

Open Source Applied - Real World Use Cases Justin Reock Rogue Wave Software - Lead Architect of OSS Support and Services To find more by Rogue Wave Software: https://www.slideshare.net/RogueWaveSoftware

open sourceopen source 101case study
41© 2019 Rogue Wave Software, Inc. All Rights Reserved.
Our Lock table…
42© 2019 Rogue Wave Software, Inc. All Rights Reserved.
And our Messages table…
43© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• To avoid an ugly (but benign) warning condition…
Turn off create tables on startup….
44© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Demonstrate Postgres as a persistence store for
ActiveMQ
• Persist some messages into the broker
• Introspect the messages
• Crash the broker
• Restart the broker and watch as messages replay
• Bonus: Demonstrate the HA failover functionality
I thought he’d never get there….

Recommended for you

#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?

This document discusses whether and how to build microservices. It includes: 1) Presentations by Sanjay Goil, VP of Product Management at Oracle, and Paul Parkinson, Cloud Platform Dev Lead at Oracle on microservices and building a sample microservices application. 2) Recommendations from Oracle ACEs Guido and Rolando on microservices approaches and modernizing existing SOA architectures for microservices. 3) A discussion of how a converged database can simplify building microservices by supporting messaging, multiple data types, and cloud services. 4) A demo of building a microservices application for a food delivery app using technologies like Helidon and a converged database.

oracle databasemicroservices
Cloud Foundry and MongoDB
Cloud Foundry and MongoDBCloud Foundry and MongoDB
Cloud Foundry and MongoDB

This slide deck was originally used for a Lightning Talk on integrating MongoDB into a Cloud Foundry application at MongoDB World 2015. It contains an overview of Cloud Foundry, as well as an explanation of where the MongoDB service fits into the technology stack.

mongodbbluemixcloud foundry
Integrating MongoDB into Cloud Foundry App
Integrating MongoDB into Cloud Foundry AppIntegrating MongoDB into Cloud Foundry App
Integrating MongoDB into Cloud Foundry App

Want to integrate MongoDB into your Cloud Foundry App? Learn exactly how to do that with Bluemix Developer Advocate Jake Peyser! Follow him @Jakepeyser.

 
by IBM
cloudibmbluemix
45© 2019 Rogue Wave Software, Inc. All Rights Reserved.
46© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Recall that Camel is a normalized routing engine meant to shuttle data
around
• Camel takes a component driven approach where components are
published for various endpoints
• One of those endpoints is the JDBC endpoint, meant to interact with JDBC-
compliant database drivers
• So, Camel can either read data from a database to enrich a message, or
produce data into a database from an external process
• Camel’s marshalling and transformation capabilities make it ideal for
building API abstraction in front of a Postgres database
Camel moves data around an enterprise…
47© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Camel-JDBC – Most basic integration, uses explicit SQL to
execute queries against a JDBC-compliant driver
• Camel-JPA – For using Object Relational Mapping
solutions like OpenJPA and Hibernate
• Camel-SQL – Variant of camel-jdbc which uses Spring IoC
to provide query details
• As well as NoSQL-specific components like MongoDB,
Cassandra, and Hadoop
Camel provides a lot of options…
48© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Camel uses a repeatable, normalized concatenation of
“Processor” and ”Message” objects in a group called an
Exchange
• There is an ”In” message, a “Processor”, and an “Out”
message
Processor
In Out

Recommended for you

Building a Streaming Microservices Architecture - Data + AI Summit EU 2020
Building a Streaming Microservices Architecture - Data + AI Summit EU 2020Building a Streaming Microservices Architecture - Data + AI Summit EU 2020
Building a Streaming Microservices Architecture - Data + AI Summit EU 2020

Jules Damji and Denny Lee from Databricks Developer Relations will recap some keynote highlights, and each will briefly present personal picks from sessions that resonated well with them. Next, Jacek Laskowski, an independent consultant, will speak about Spark 3.0 internals, and Scott Haines from Twilio, Inc. will give a talk about structured streaming microservice architectures. This live coding session and technical deep dive are not to be missed!

IoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdfIoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdf

This document provides an overview of cloud computing and its relevance to IoT. It discusses various cloud storage models and APIs that enable communication with cloud services. It introduces the WAMP protocol for building publish-subscribe and RPC-based distributed apps for IoT. The document also covers using the Xively cloud platform and Django web framework for developing IoT apps. Key topics include cloud computing concepts, types of cloud services, advantages of cloud, and getting started with Django projects, apps, databases and models.

DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in Microservices

Migrating to a microservices architecture isn't the easy utopia we hoped for. Success requires a combination of technical architecture, automation, and development methodology that all relate closely to Agile and DevOps. This presentation discusses patterns for team structure, CI/CD pipelines, and test automation that will help you successfully deliver solutions using microservices. Presented at AgileDC, Sept 2019

agile software developmentdevopscicd
49© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• And, you can chain these Exchanges together – just like piping
commands through UNIX – and form a Camel Route
• The “Out” message of a previous Exchange becomes the “In”
message of a new Exchange:
P
In Out
P
In Out
P
In Out
50© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• Now here’s the magical part – a Processor can be anything you want
• Components in Camel work by creating Processors that perform various business
functions
• The components can be chained together to build Integration Patterns
• For instance, you can have an “FTP” processor that takes the In message and initiates an
FTP session
• Or you can have an “SMTP” processor that takes the In message and sends an email
with it
• And as we’ll see in a few minutes, there are several components designed specifically for
interacting with JDBC-compliant database drivers
• This is in addition to Camel’s many built-in patterns, such as LoadBalance, Multicast,
DataSets, etc.
• And there are a lot of components: http://camel.apache.org/components.html
51© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• We will develop a simple RESTful API for writing and
reading to a table in Postgres
• GET requests to our API will output data in JSON
• POST requests will write the post body to the database
• We will do this using very little code, demonstrating
Camel’s propensity for rapid development of integration
logic
Integrating Postgres with ActiveMQ and Camel

Recommended for you

Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...

The document discusses Oracle's Application Container Cloud Service, a new cloud platform for deploying containerized applications. It provides benefits like productivity for developers, enabling DevOps practices through integration with Oracle Developer Cloud Service, and automating infrastructure provisioning and application lifecycle management. Developers can build applications, package them into a ZIP file along with configuration files, and deploy them elastically on the container cloud which supports polyglot applications and automatic scaling. The platform simplifies deploying modern, cloud-native applications on containers.

duško vukmanovićhujakjavantura
Open Source AI and ML, Whats Possible Today?
Open Source AI and ML, Whats Possible Today?Open Source AI and ML, Whats Possible Today?
Open Source AI and ML, Whats Possible Today?

After a quick refresher on deep learning and the composition of deep neural networks, drill down into how AirBnb, GE Healthcare, and Comma AI leverage various open source machine learning frameworks to achieve their goals. With a focus on TensorFlow, we’ll investigate the development process and decisions made by these three successful implementations of machine learning for real world applications. WMCPA Quarterly

#ai#ml#machinelearning
Community vs. Commercial Open Source
Community vs. Commercial Open SourceCommunity vs. Commercial Open Source
Community vs. Commercial Open Source

New monetization models such as open core have presented questions for IT professionals. Do we stick with the freedom and agility of community releases, or do we pay for the enterprise counterparts? Explore patterns in Enterprise Edition add-ons, look at some concrete examples such as Confluent vs. Kafka, and be better prepared to decide where you spend your open source license dollars.

open sourcekafkapostgres
53© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• To initialize our datasource, we will use a bean very similar to the one that we
used for ActiveMQ, since Camel is also powered by Spring:
<bean id="postgres-ds"
class="org.postgresql.ds.PGPoolingDataSource"
destroy-method="close">
<property name="serverName" value="localhost"/>
<property name="databaseName" value="cameljdbc"/>
<property name="portNumber" value=���5432"/>
<property name="user" value=”camel"/>
<property name="password" value="camel"/>
<property name="dataSourceName" value="postgres"/>
<property name="initialConnections" value="1"/>
<property name="maxConnections" value="10"/>
</bean>
<camelContext xmlns="http://camel.apache.org/schema/blueprint" id="JDBCDemos">
<dataFormats>
<json id="jack" library="Jackson"/>
</dataFormats>
<route>
<description>PostgresConf 2019 :: JDBC Marshalling</description>
<from uri="jetty:http://0.0.0.0:8080/jdbcWeb"/>
<when>
<simple>${headers.CamelHttpMethod} == "GET"</simple>
<setBody>
<constant>SELECT * FROM post_data</constant>
</setBody>
<to uri="jdbc:postgres-ds"/>
<marshal ref="jack"/>
</when>
<when>
<simple>${headers.CamelHttpMethod} == "POST"</simple>
<setBody>
<simple>
INSERT INTO post_data VALUES ('${date:now:yyyy-MM-dd'T'HH:mm:ss.SSSZ}','${body}’)
</simple>
</setBody>
<to uri="jdbc:postgres-ds"/>
</when>
</route>
</camelContext>
Yep, that’s all the code we need….
55© 2019 Rogue Wave Software, Inc. All Rights Reserved.
• This one is a lot easier to just demonstrate
• We will write the code together, and I will deploy out to
ServiceMix
• Camel can be deployed in lots of different ways, but
ServiceMix is easy for prototyping
• Bonus: Add a parameter to allow searching for specific
data
Let’s watch it work!
56© 2019 Rogue Wave Software, Inc. All Rights Reserved.
LinkedIn – Only Justin Reock in the world apparently!
Twitter – @jreock - But I do get a little political on
there….
Blog - http://blog.klocwork.com/author/justin-reock/
Email – justin.reock@roguewave.com
Feel Free to Reach Out – I Get Lonely…

Recommended for you

Getting Started with Node.js
Getting Started with Node.jsGetting Started with Node.js
Getting Started with Node.js

Learn to leverage the power of server-side Javascript with this Node.js introductory tutorial. We’ll dive into Node’s architecture and understand the build and dependency management systems involved. Several modules for Node will be demoed, and we’ll learn how to debug Node applications within an IDE. You’ll come away with an understanding of what sets Node apart from traditional Javascript, it’s inherently asynchronous and event-driven architecture, and take a look at some real world applications built on Node.

node.jsnodeoss
Monitoring Java Applications with Prometheus and Grafana
Monitoring Java Applications with Prometheus and GrafanaMonitoring Java Applications with Prometheus and Grafana
Monitoring Java Applications with Prometheus and Grafana

Learn how to modernize your Java application monitoring and dashboarding with Prometheus and Grafana. There's a lot of information out there when it comes to monitoring a Kubernetes cluster with Prometheus, but, in the modern enterprise landscape, applications are still what matters. Learn how to leverage Prometheus and Grafana to build slick, modern monitoring dashboards and threshold logic for Java applications.

monitoringprometheusgrafana
Intro to React
Intro to ReactIntro to React
Intro to React

The document provides an introduction to React, a JavaScript library for building user interfaces. It discusses key React concepts like components, properties, state, one-way data flow, and JSX syntax. It also covers setting up a development environment with Create React App and shows how to create a basic React component with state. The target audience appears to be people new to React who want to learn the fundamentals.

reactjavascriptopen source
57© 2019 Rogue Wave Software, Inc. All Rights Reserved.

More Related Content

What's hot

Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San JoseDataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Aldrin Piri
 
How Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per dayHow Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per day
DataWorks Summit
 
Top 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark ApplicationsTop 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark Applications
Spark Summit
 
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
HostedbyConfluent
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producer
confluent
 
Storage Capacity Management on Multi-tenant Kafka Cluster with Nurettin Omeroglu
Storage Capacity Management on Multi-tenant Kafka Cluster with Nurettin OmerogluStorage Capacity Management on Multi-tenant Kafka Cluster with Nurettin Omeroglu
Storage Capacity Management on Multi-tenant Kafka Cluster with Nurettin Omeroglu
HostedbyConfluent
 
Introducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes OperatorIntroducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes Operator
Flink Forward
 
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用
Lorex L. Yang
 
PostgreSQL and CockroachDB SQL
PostgreSQL and CockroachDB SQLPostgreSQL and CockroachDB SQL
PostgreSQL and CockroachDB SQL
CockroachDB
 
Deploying Confluent Platform for Production
Deploying Confluent Platform for ProductionDeploying Confluent Platform for Production
Deploying Confluent Platform for Production
confluent
 
File Format Benchmark - Avro, JSON, ORC & Parquet
File Format Benchmark - Avro, JSON, ORC & ParquetFile Format Benchmark - Avro, JSON, ORC & Parquet
File Format Benchmark - Avro, JSON, ORC & Parquet
DataWorks Summit/Hadoop Summit
 
Hashicorp Vault Open Source vs Enterprise
Hashicorp Vault Open Source vs EnterpriseHashicorp Vault Open Source vs Enterprise
Hashicorp Vault Open Source vs Enterprise
Stenio Ferreira
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Lucas Jellema
 
Vault Open Source vs Enterprise v2
Vault Open Source vs Enterprise v2Vault Open Source vs Enterprise v2
Vault Open Source vs Enterprise v2
Stenio Ferreira
 
Describing Kafka security in AsyncAPI
Describing Kafka security in AsyncAPIDescribing Kafka security in AsyncAPI
Describing Kafka security in AsyncAPI
Dale Lane
 
Faceted Search with Lucene
Faceted Search with LuceneFaceted Search with Lucene
Faceted Search with Lucene
lucenerevolution
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics
Araf Karsh Hamid
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive Mode
Flink Forward
 
Grafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for LogsGrafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for Logs
Marco Pracucci
 
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...
Databricks
 

What's hot (20)

Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San JoseDataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
Dataflow with Apache NiFi - Apache NiFi Meetup - 2016 Hadoop Summit - San Jose
 
How Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per dayHow Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per day
 
Top 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark ApplicationsTop 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark Applications
 
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producer
 
Storage Capacity Management on Multi-tenant Kafka Cluster with Nurettin Omeroglu
Storage Capacity Management on Multi-tenant Kafka Cluster with Nurettin OmerogluStorage Capacity Management on Multi-tenant Kafka Cluster with Nurettin Omeroglu
Storage Capacity Management on Multi-tenant Kafka Cluster with Nurettin Omeroglu
 
Introducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes OperatorIntroducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes Operator
 
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用
 
PostgreSQL and CockroachDB SQL
PostgreSQL and CockroachDB SQLPostgreSQL and CockroachDB SQL
PostgreSQL and CockroachDB SQL
 
Deploying Confluent Platform for Production
Deploying Confluent Platform for ProductionDeploying Confluent Platform for Production
Deploying Confluent Platform for Production
 
File Format Benchmark - Avro, JSON, ORC & Parquet
File Format Benchmark - Avro, JSON, ORC & ParquetFile Format Benchmark - Avro, JSON, ORC & Parquet
File Format Benchmark - Avro, JSON, ORC & Parquet
 
Hashicorp Vault Open Source vs Enterprise
Hashicorp Vault Open Source vs EnterpriseHashicorp Vault Open Source vs Enterprise
Hashicorp Vault Open Source vs Enterprise
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Vault Open Source vs Enterprise v2
Vault Open Source vs Enterprise v2Vault Open Source vs Enterprise v2
Vault Open Source vs Enterprise v2
 
Describing Kafka security in AsyncAPI
Describing Kafka security in AsyncAPIDescribing Kafka security in AsyncAPI
Describing Kafka security in AsyncAPI
 
Faceted Search with Lucene
Faceted Search with LuceneFaceted Search with Lucene
Faceted Search with Lucene
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive Mode
 
Grafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for LogsGrafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for Logs
 
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...
The Top Five Mistakes Made When Writing Streaming Applications with Mark Grov...
 

Similar to Integrating Postgres with ActiveMQ and Camel

The forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for youThe forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for you
Rogue Wave Software
 
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and CamelZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
Justin Reock
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
Bruno Borges
 
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloudIBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
Andrew Schofield
 
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
Miguel Araújo
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!
Shelly Megan
 
5 strategies for enterprise cloud infrastructure success
5 strategies for enterprise cloud infrastructure success5 strategies for enterprise cloud infrastructure success
5 strategies for enterprise cloud infrastructure success
Rogue Wave Software
 
Making Apache Camel work for you
Making Apache Camel work for you Making Apache Camel work for you
Making Apache Camel work for you
Rogue Wave Software
 
Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015
Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015
Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015
Yakura Coffee
 
MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...
MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...
MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...
Jitendra Bafna
 
AWS Initiate Day Dublin 2019 – Breaking down the Monoliths
AWS Initiate Day Dublin 2019 – Breaking down the MonolithsAWS Initiate Day Dublin 2019 – Breaking down the Monoliths
AWS Initiate Day Dublin 2019 – Breaking down the Monoliths
Amazon Web Services
 
Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)
Rogue Wave Software
 
Open Source Applied - Real World Use Cases
Open Source Applied - Real World Use CasesOpen Source Applied - Real World Use Cases
Open Source Applied - Real World Use Cases
All Things Open
 
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?
Tammy Bednar
 
Cloud Foundry and MongoDB
Cloud Foundry and MongoDBCloud Foundry and MongoDB
Cloud Foundry and MongoDB
Jake Peyser
 
Integrating MongoDB into Cloud Foundry App
Integrating MongoDB into Cloud Foundry AppIntegrating MongoDB into Cloud Foundry App
Integrating MongoDB into Cloud Foundry App
IBM
 
Building a Streaming Microservices Architecture - Data + AI Summit EU 2020
Building a Streaming Microservices Architecture - Data + AI Summit EU 2020Building a Streaming Microservices Architecture - Data + AI Summit EU 2020
Building a Streaming Microservices Architecture - Data + AI Summit EU 2020
Databricks
 
IoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdfIoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdf
GVNSK Sravya
 
DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in Microservices
Rich Mills
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 

Similar to Integrating Postgres with ActiveMQ and Camel (20)

The forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for youThe forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for you
 
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and CamelZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloudIBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
 
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!
 
5 strategies for enterprise cloud infrastructure success
5 strategies for enterprise cloud infrastructure success5 strategies for enterprise cloud infrastructure success
5 strategies for enterprise cloud infrastructure success
 
Making Apache Camel work for you
Making Apache Camel work for you Making Apache Camel work for you
Making Apache Camel work for you
 
Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015
Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015
Deploying IBM WebSphere Application Server to the Cloud_GWC_3-24-2015
 
MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...
MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...
MuleSoft Surat Virtual Meetup#25 - Anypoint Platform Features and Capabilitie...
 
AWS Initiate Day Dublin 2019 – Breaking down the Monoliths
AWS Initiate Day Dublin 2019 – Breaking down the MonolithsAWS Initiate Day Dublin 2019 – Breaking down the Monoliths
AWS Initiate Day Dublin 2019 – Breaking down the Monoliths
 
Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)Open source applied - Real world use cases (Presented at Open Source 101)
Open source applied - Real world use cases (Presented at Open Source 101)
 
Open Source Applied - Real World Use Cases
Open Source Applied - Real World Use CasesOpen Source Applied - Real World Use Cases
Open Source Applied - Real World Use Cases
 
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?
 
Cloud Foundry and MongoDB
Cloud Foundry and MongoDBCloud Foundry and MongoDB
Cloud Foundry and MongoDB
 
Integrating MongoDB into Cloud Foundry App
Integrating MongoDB into Cloud Foundry AppIntegrating MongoDB into Cloud Foundry App
Integrating MongoDB into Cloud Foundry App
 
Building a Streaming Microservices Architecture - Data + AI Summit EU 2020
Building a Streaming Microservices Architecture - Data + AI Summit EU 2020Building a Streaming Microservices Architecture - Data + AI Summit EU 2020
Building a Streaming Microservices Architecture - Data + AI Summit EU 2020
 
IoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdfIoT Physical Servers and Cloud Offerings.pdf
IoT Physical Servers and Cloud Offerings.pdf
 
DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in Microservices
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
 

More from Justin Reock

Open Source AI and ML, Whats Possible Today?
Open Source AI and ML, Whats Possible Today?Open Source AI and ML, Whats Possible Today?
Open Source AI and ML, Whats Possible Today?
Justin Reock
 
Community vs. Commercial Open Source
Community vs. Commercial Open SourceCommunity vs. Commercial Open Source
Community vs. Commercial Open Source
Justin Reock
 
Getting Started with Node.js
Getting Started with Node.jsGetting Started with Node.js
Getting Started with Node.js
Justin Reock
 
Monitoring Java Applications with Prometheus and Grafana
Monitoring Java Applications with Prometheus and GrafanaMonitoring Java Applications with Prometheus and Grafana
Monitoring Java Applications with Prometheus and Grafana
Justin Reock
 
Intro to React
Intro to ReactIntro to React
Intro to React
Justin Reock
 
Node.js Deeper Dive
Node.js Deeper DiveNode.js Deeper Dive
Node.js Deeper Dive
Justin Reock
 
Linux 101
Linux 101Linux 101
Linux 101
Justin Reock
 
ZendCon - Linux 101
ZendCon - Linux 101ZendCon - Linux 101
ZendCon - Linux 101
Justin Reock
 

More from Justin Reock (8)

Open Source AI and ML, Whats Possible Today?
Open Source AI and ML, Whats Possible Today?Open Source AI and ML, Whats Possible Today?
Open Source AI and ML, Whats Possible Today?
 
Community vs. Commercial Open Source
Community vs. Commercial Open SourceCommunity vs. Commercial Open Source
Community vs. Commercial Open Source
 
Getting Started with Node.js
Getting Started with Node.jsGetting Started with Node.js
Getting Started with Node.js
 
Monitoring Java Applications with Prometheus and Grafana
Monitoring Java Applications with Prometheus and GrafanaMonitoring Java Applications with Prometheus and Grafana
Monitoring Java Applications with Prometheus and Grafana
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
Node.js Deeper Dive
Node.js Deeper DiveNode.js Deeper Dive
Node.js Deeper Dive
 
Linux 101
Linux 101Linux 101
Linux 101
 
ZendCon - Linux 101
ZendCon - Linux 101ZendCon - Linux 101
ZendCon - Linux 101
 

Recently uploaded

Top 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your WebsiteTop 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your Website
e-Definers Technology
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
bhatinidhi2001
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Asher Sterkin
 
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial CompanyNBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Softwares
 
Attendance Tracking From Paper To Digital
Attendance Tracking From Paper To DigitalAttendance Tracking From Paper To Digital
Attendance Tracking From Paper To Digital
Task Tracker
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
sachin chaurasia
 
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
onemonitarsoftware
 
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTIONBITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
ssuser2b426d1
 
ThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and DjangoThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and Django
akshesh doshi
 
Development of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML TechnologiesDevelopment of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML Technologies
MaisnamLuwangPibarel
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
Ortus Solutions, Corp
 
React Native vs Flutter - SSTech System
React Native vs Flutter  - SSTech SystemReact Native vs Flutter  - SSTech System
React Native vs Flutter - SSTech System
SSTech System
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
Roshan Dwivedi
 
Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.
shivamt017
 
ANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdfANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdf
sachin chaurasia
 
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptxWired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
SimonedeGijt
 
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
ThousandEyes
 
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
karim wahed
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
AUGNYC
 
Overview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptxOverview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptx
Mitchell Marsh
 

Recently uploaded (20)

Top 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your WebsiteTop 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your Website
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
 
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial CompanyNBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial Company
 
Attendance Tracking From Paper To Digital
Attendance Tracking From Paper To DigitalAttendance Tracking From Paper To Digital
Attendance Tracking From Paper To Digital
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
 
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
 
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTIONBITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
 
ThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and DjangoThaiPy meetup - Indexes and Django
ThaiPy meetup - Indexes and Django
 
Development of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML TechnologiesDevelopment of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML Technologies
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
 
React Native vs Flutter - SSTech System
React Native vs Flutter  - SSTech SystemReact Native vs Flutter  - SSTech System
React Native vs Flutter - SSTech System
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
 
Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.
 
ANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdfANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdf
 
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptxWired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
 
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
Cisco Live Announcements: New ThousandEyes Release Highlights - July 2024
 
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
 
Overview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptxOverview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptx
 

Integrating Postgres with ActiveMQ and Camel

  • 1. 1© 2019 Rogue Wave Software, Inc. All Rights Reserved.
  • 2. 2© 2019 Rogue Wave Software, Inc. All Rights Reserved. Justin Reock Chief Architect Rogue Wave Software Justin has over 20 years’ experience working in various software roles and is an outspoken free software evangelist, delivering enterprise solutions and community education on databases, integration work, architecture, and technical leadership. He is currently the Chief Architect at Rogue Wave Software.
  • 3. 3© 2019 Rogue Wave Software, Inc. All Rights Reserved.
  • 4. 4© 2019 Rogue Wave Software, Inc. All Rights Reserved. • I’m going to show you three slides • They all have something in common…. • See if you can figure out what it is!
  • 5. 5© 2019 Rogue Wave Software, Inc. All Rights Reserved.
  • 6. 6© 2019 Rogue Wave Software, Inc. All Rights Reserved.
  • 7. 7© 2019 Rogue Wave Software, Inc. All Rights Reserved. BillingFulfillment CRME-Commerce
  • 8. 8© 2019 Rogue Wave Software, Inc. All Rights Reserved.  None of these things exist in real life!
  • 9. 9© 2019 Rogue Wave Software, Inc. All Rights Reserved.
  • 10. 10© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Technically, MOM is any platform that sends and receives messages between distributed applications • This allows for asynchronous processing, and normalization of data exchanges • Clients connect to a messaging provider, and send and receive messages via that provider
  • 11. 11© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Data normalization makes it a lot easier for disparate applications to trade information • Just like in web services, heterogeneous systems can agree on a data “contract” and send and receive data in that format • All the application needs is a client compatible with the messaging provider • And since messages are allowed to queue up on the message provider, it also makes it very easy to perform asynchronous processing • Most message providers offer additional benefits, like guaranteed delivery, options for traffic shaping, high availability, and scaling
  • 12. 12© 2019 Rogue Wave Software, Inc. All Rights Reserved.
  • 13. 13© 2019 Rogue Wave Software, Inc. All Rights Reserved. • ActiveMQ is a Java-based multi-purpose messaging middleware solution, called a message broker, designed for high throughput and scale • It is useful in a number of situations, including aggregating large amounts of data in an efficient and safe manner, federating disparate or heterogeneous applications across an enterprise, and/or moving data between geographically separated data centers or applications • ActiveMQ supports a number of connection protocols, allowing it to provide connection points between applications coded in different languages, such as Java, C++, .NET, PHP, etc • Customers commonly migrate to ActiveMQ from commercial middleware such as WebSphereMQ, Oracle AQ, TIBCO EMS, and/or MSMQ
  • 14. 14© 2019 Rogue Wave Software, Inc. All Rights Reserved. • ActiveMQ is a mature and well-adopted platform, with thousands of companies using it, and backed by a strong community • It is by far the most flexible OSS message broker available, offering integration points for dozens of application frameworks and languages • ActiveMQ ships with Apache Camel, one of the most revolutionary integration frameworks available, and shares developers and committers with the Apache Camel product • ActiveMQ can be tuned for massive scale, supporting large data sets, such as those generated by the CERN large hadron collider • Its configuration can support numerous traffic and implementation models • ActiveMQ has a powerful statistics and metrics engine, exposing crucial details about the health of the broker and the amount and size of message traffic and client status
  • 15. 15© 2019 Rogue Wave Software, Inc. All Rights Reserved. • ActiveMQ acts as integration middleware, sitting between various enterprise applications, data sources, and APIs, and “federating” data between the systems
  • 16. 16© 2019 Rogue Wave Software, Inc. All Rights Reserved. • ActiveMQ can also be used as a reliable message buffer • Applications can send messages into ActiveMQ and continue working, knowing that ActiveMQ will guarantee delivery of the message • Or, ActiveMQ can be used to broadcast messages to several different systems • ActiveMQ supports transactions between the broker and the client, so that exceptions can be caught and managed • Using these constructs, you can easily create asynchronous message patterns by sending or receiving messages from ActiveMQ
  • 17. 17© 2019 Rogue Wave Software, Inc. All Rights Reserved. Message grouping Scheduled messages Security framework Metrics and statistics Network of Brokers Inactivity monitoring Transactions Fault tolerance Traffic Shaping Plugin stack Virtual destinations Temporary destinations Transformation Load balancing Client failover Property encryption Destination policies Dispatch policies Producer flow control Message swapping And of course… Camel!
  • 18. 18© 2019 Rogue Wave Software, Inc. All Rights Reserved.
  • 19. 19© 2019 Rogue Wave Software, Inc. All Rights Reserved. • So, data routing and transformation in the Enterprise lends itself to a lot of what you would call “boilerplate” code • Boilerplate text, in publishing, is text that can be used and reused in many places • Boilerplate code is the same concept • How many times have you written code to open up a web server, push a file to an ftp site or drop a message into a message broker? • Have you ever felt that you’re just writing different versions of the same thing over and over again? • You’re not alone • Enter the concept of an Enterprise Integration Pattern…
  • 20. 20© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Camel is an open source MOM language developed by Apache and based on Enterprise Integration Patterns • Book by Gregor Hohpe and Bobby Woolf • Centers around 60+ common patterns found in Enterprise integration projects • Defines these common patterns in a vendor neutral way • Camel aims to provide a language which implements these patterns, in a style modeled after the UNIX pipeline
  • 21. 21© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Content Based Router – Where a message is routed to disparate endpoints based on message criteria
  • 22. 22© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Content Enricher – In which a basic message enters the pattern, takes data from another source, and then adds it to the message
  • 23. 23© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Recipient List – A message is broadcast to n channels based on message criteria. When this message is broadcast to all channels regardless, it becomes a Multicast pattern
  • 24. 24© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Scatter-Gather – In which messages are broadcast out to disparate endpoints and results are aggregated into a single message
  • 25. 25© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Camel is maintained by the Apache Camel community • It is a top-level project hosted at http://camel.apache.org • The project’s chief maintainer is Claus Ibsen, author of Camel in Action • As of August of 2017, the project has had almost 400 distinct committers, spanning over 30,000 commits • It is written primarily in Java, and also contains some Scala code • The project is licensed under the ALv2 (Apache License v2.0), which is considered a permissive license • So, Camel has been folded in to many other projects, including the Mule ESB and the Switchyard project • Camel can be run standalone, packaged into a WAR, or deployed as an OSGI bundle • A POJO syntax as well as a Spring DSL XML syntax are made available for developers
  • 26. 26© 2019 Rogue Wave Software, Inc. All Rights Reserved.
  • 27. 27© 2019 Rogue Wave Software, Inc. All Rights Reserved. • ActiveMQ needs to be able to persist messages in something called a persistence journal • This way, if the broker crashes, it can replay unsent messages when it comes back up • And Camel is just plain hungry for endpoints, and databases are no exception! Postgres works great with ActiveMQ and Camel!
  • 28. 28© 2019 Rogue Wave Software, Inc. All Rights Reserved. • ActiveMQ needs a persistence journal to manage High Availability • The default is a NoSQL database called KahaDB • The default is fast, but difficult to replicate leading to a SPOF architecture
  • 29. 29© 2019 Rogue Wave Software, Inc. All Rights Reserved. When should I use… Postgres/JDBC? KahaDB? • I need true no-SPOF HA • Throughput is less important • I need to easily introspect messages in the persistence store • I want familiar backup and replication • I don’t need true no-SPOF HA • Throughput is the most important aspect • I can lose messages or don’t need to introspect them • I can rely on storage backup
  • 30. 30© 2019 Rogue Wave Software, Inc. All Rights Reserved. Quick reality check… KahaDB Postgres w/ Pooling Postgres w/o Pooling
  • 31. 31© 2019 Rogue Wave Software, Inc. All Rights Reserved. • You can initialize Postgres as an ActiveMQ Persistence Journal in a few simple steps: – Configure Postgres with an ActiveMQ User and Database – Copy Postgres JDBC driver into ActiveMQ Classpath – Configure ActiveMQ Persistence Adapter and Pooling – Disable automatic schema creation going forward
  • 32. 32© 2019 Rogue Wave Software, Inc. All Rights Reserved. Several components are used to connect… ActiveMQ Code Third-party or PGPooling Postgres Code
  • 33. 33© 2019 Rogue Wave Software, Inc. All Rights Reserved. From a fresh install…
  • 34. 34© 2019 Rogue Wave Software, Inc. All Rights Reserved. pg_hba.conf Adjust your trust settings accordingly for your environment…
  • 35. 35© 2019 Rogue Wave Software, Inc. All Rights Reserved. • ActiveMQ’s default classpath is in the /lib directory of the installation root
  • 36. 36© 2019 Rogue Wave Software, Inc. All Rights Reserved. Create a Bean reference in /conf/activemq.xml <bean id="postgres-ds" class="org.postgresql.ds.PGPoolingDataSource" destroy-method="close"> <property name="serverName" value="localhost"/> <property name="databaseName" value="activemq"/> <property name="portNumber" value="0"/> <property name="user" value="activemq"/> <property name="password" value="activemq"/> <property name="dataSourceName" value="postgres"/> <property name="initialConnections" value="1"/> <property name="maxConnections" value="10"/> </bean>
  • 37. 37© 2019 Rogue Wave Software, Inc. All Rights Reserved. Set the <persistenceAdapter> to JDBC and reference the bean <persistenceAdapter> <jdbcPersistenceAdapter dataSource="#postgres-ds" createTablesOnStartup=”true” /> </persistenceAdapter>  Remember that createTablesOnStartup setting…..
  • 38. 38© 2019 Rogue Wave Software, Inc. All Rights Reserved. Fire up the broker and check the persistence…  Looks good, lets check out the schema …..
  • 39. 39© 2019 Rogue Wave Software, Inc. All Rights Reserved. Lets see all tables…
  • 40. 40© 2019 Rogue Wave Software, Inc. All Rights Reserved. Our ACK Table…
  • 41. 41© 2019 Rogue Wave Software, Inc. All Rights Reserved. Our Lock table…
  • 42. 42© 2019 Rogue Wave Software, Inc. All Rights Reserved. And our Messages table…
  • 43. 43© 2019 Rogue Wave Software, Inc. All Rights Reserved. • To avoid an ugly (but benign) warning condition… Turn off create tables on startup….
  • 44. 44© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Demonstrate Postgres as a persistence store for ActiveMQ • Persist some messages into the broker • Introspect the messages • Crash the broker • Restart the broker and watch as messages replay • Bonus: Demonstrate the HA failover functionality I thought he’d never get there….
  • 45. 45© 2019 Rogue Wave Software, Inc. All Rights Reserved.
  • 46. 46© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Recall that Camel is a normalized routing engine meant to shuttle data around • Camel takes a component driven approach where components are published for various endpoints • One of those endpoints is the JDBC endpoint, meant to interact with JDBC- compliant database drivers • So, Camel can either read data from a database to enrich a message, or produce data into a database from an external process • Camel’s marshalling and transformation capabilities make it ideal for building API abstraction in front of a Postgres database Camel moves data around an enterprise…
  • 47. 47© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Camel-JDBC – Most basic integration, uses explicit SQL to execute queries against a JDBC-compliant driver • Camel-JPA – For using Object Relational Mapping solutions like OpenJPA and Hibernate • Camel-SQL – Variant of camel-jdbc which uses Spring IoC to provide query details • As well as NoSQL-specific components like MongoDB, Cassandra, and Hadoop Camel provides a lot of options…
  • 48. 48© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Camel uses a repeatable, normalized concatenation of “Processor” and ”Message” objects in a group called an Exchange • There is an ”In” message, a “Processor”, and an “Out” message Processor In Out
  • 49. 49© 2019 Rogue Wave Software, Inc. All Rights Reserved. • And, you can chain these Exchanges together – just like piping commands through UNIX – and form a Camel Route • The “Out” message of a previous Exchange becomes the “In” message of a new Exchange: P In Out P In Out P In Out
  • 50. 50© 2019 Rogue Wave Software, Inc. All Rights Reserved. • Now here’s the magical part – a Processor can be anything you want • Components in Camel work by creating Processors that perform various business functions • The components can be chained together to build Integration Patterns • For instance, you can have an “FTP” processor that takes the In message and initiates an FTP session • Or you can have an “SMTP” processor that takes the In message and sends an email with it • And as we’ll see in a few minutes, there are several components designed specifically for interacting with JDBC-compliant database drivers • This is in addition to Camel’s many built-in patterns, such as LoadBalance, Multicast, DataSets, etc. • And there are a lot of components: http://camel.apache.org/components.html
  • 51. 51© 2019 Rogue Wave Software, Inc. All Rights Reserved. • We will develop a simple RESTful API for writing and reading to a table in Postgres • GET requests to our API will output data in JSON • POST requests will write the post body to the database • We will do this using very little code, demonstrating Camel’s propensity for rapid development of integration logic
  • 53. 53© 2019 Rogue Wave Software, Inc. All Rights Reserved. • To initialize our datasource, we will use a bean very similar to the one that we used for ActiveMQ, since Camel is also powered by Spring: <bean id="postgres-ds" class="org.postgresql.ds.PGPoolingDataSource" destroy-method="close"> <property name="serverName" value="localhost"/> <property name="databaseName" value="cameljdbc"/> <property name="portNumber" value=”5432"/> <property name="user" value=”camel"/> <property name="password" value="camel"/> <property name="dataSourceName" value="postgres"/> <property name="initialConnections" value="1"/> <property name="maxConnections" value="10"/> </bean>
  • 54. <camelContext xmlns="http://camel.apache.org/schema/blueprint" id="JDBCDemos"> <dataFormats> <json id="jack" library="Jackson"/> </dataFormats> <route> <description>PostgresConf 2019 :: JDBC Marshalling</description> <from uri="jetty:http://0.0.0.0:8080/jdbcWeb"/> <when> <simple>${headers.CamelHttpMethod} == "GET"</simple> <setBody> <constant>SELECT * FROM post_data</constant> </setBody> <to uri="jdbc:postgres-ds"/> <marshal ref="jack"/> </when> <when> <simple>${headers.CamelHttpMethod} == "POST"</simple> <setBody> <simple> INSERT INTO post_data VALUES ('${date:now:yyyy-MM-dd'T'HH:mm:ss.SSSZ}','${body}’) </simple> </setBody> <to uri="jdbc:postgres-ds"/> </when> </route> </camelContext> Yep, that’s all the code we need….
  • 55. 55© 2019 Rogue Wave Software, Inc. All Rights Reserved. • This one is a lot easier to just demonstrate • We will write the code together, and I will deploy out to ServiceMix • Camel can be deployed in lots of different ways, but ServiceMix is easy for prototyping • Bonus: Add a parameter to allow searching for specific data Let’s watch it work!
  • 56. 56© 2019 Rogue Wave Software, Inc. All Rights Reserved. LinkedIn – Only Justin Reock in the world apparently! Twitter – @jreock - But I do get a little political on there…. Blog - http://blog.klocwork.com/author/justin-reock/ Email – justin.reock@roguewave.com Feel Free to Reach Out – I Get Lonely…
  • 57. 57© 2019 Rogue Wave Software, Inc. All Rights Reserved.

Editor's Notes

  1. Establish right to play here by explaining background
  2. Honeywell