SlideShare a Scribd company logo
1 of 41
Download to read offline
APACHECON North America
Sept. 24-27, 2018
Apache Unomi: a Customer
Data Platform …
● Serge Huber
Apache Unomi / Jahia
@sergehuber
shuber@apache.org
APACHECON North America
Introduction
20 years Web
Dev experience
Coder at heart
(since I’m 7)
Very intested in
User experiences
Co-founder &
CTO of Jahia
Apache Committer
(Jackrabbit, Unomi)
Co-chair OASIS
Context Server TC
APACHECON North America
What is a Customer Data
Platform ?
● From Wikipedia: “Customer Data Platform (CDP) is a
marketer-based management system. It creates a
persistent, unified customer database that is accessible
to other systems. Data is pulled from multiple sources,
cleaned and combined to create a single customer
profile. This structured data is then made available to
other marketing systems. CDP provides real-time
segmentation for personalized marketing.
CDP is currently a $300 million industry and projected
to reach $1 billion by 2019”
APACHECON North America
Why do I need one ?
● If you want to...
○ learn more about your visitors
○ deliver personalized experiences on your website or
mobile app
○ make sure you comply with stricter regulations now
in place (GDPR) or upcoming
○ be in control of your analytics and personalization
(instead of giving away your data to others like
Google Analytics)
○ avoid reinventing the wheel by building your own
customer database, related hooks and segmentation
APACHECON North America
What is Apache Unomi ?
● Apache Unomi is an open source CDP
● A Java platform based on a completely
modular and highly scalable
architecture
● Is the reference implementation of the
ConteXt Server specification standard
(CXS)
● Is event-based and uses ElasticSearch
as a scalable backend for persistence
and querying
APACHECON North America
What is CXS ?
● The ConteXt Server Specification (to be renamed to CDP
standard !)
● Being established at the OASIS Foundation
● Defines a standard to deliver personalized experiences
● Allow for interoperability and customer data exchanges
APACHECON North America
Why was the project started at
Apache ?
● No open source implementation
existed !
● Apache is well recognized to
provide platform solutions
● Apache is truly independant (eg.
Github == Microsoft)
● Apache provides highly
recognized and solid
infrastructure
● Community is great, good
things will automatically happen
to the code
APACHECON North America
Apache Unomi functionalities
APACHECON North America
Why privacy is now critical !
● GDPR : A new EU directive that
imposes strict conditions on dealing
with customer data
● Fines are very expensive, up to 4% of
annual company turnover or €20
million, whichever is higher !
● Consent for data usage is now
explicitly required -> lots of ugly/buggy
popups on web browsers, and most
are not compliant !
● Users must be able to download their
profiles or delete them !
APACHECON North America
Unomi supports all that !
● Profile properties management
● Defines “personal identifiers” properties
● “Anonymize my profile” endpoint (erase any personal
identifier)
● Consent management (get AND update)
● “Private browsing”
● Downloading profile
APACHECON North America
Consent Management UI
Consent definition
(outside of Unomi’s scope)
APACHECON North America
Consent Management UI
Built on top of Unomi’s Consent API
End user user interface
(updated through consent events)
Reporting
APACHECON North America
Performance & scalability
● At Jahia we test Apache Unomi
on a weekly basis with over 5
million profiles
● Server is designed to be
scalable
● ElasticSearch cluster allows
growth to achieve proper
scalability
● Known bottlenecks:
○ ingestion speed
○ rule processing
● Solutions:
○ Add more ES & Unomi
nodes
APACHECON North America
Use case : web site tracking &
personalization
APACHECON North America
Use case : mobile app & personalization
Mobile app CMS Apache Unomi
Send profile id & session id
Get context for profile
Send app active event
Send screen change event
Get personalized content or
screen Execute filters for profile
Get personalized content
or screens
APACHECON North America
Architecture
ElasticSearch cluster
Apache Karaf (cluster)
CXS REST API (using Apache CXF + Servlets)
(Dev) Shell
Commands
Rule Engine Profile Service
Segment Service
Definitions Service
(conditions, actions)
Query Service
Event Service
Personalization
Service
Goals Service
Salesforce Actions Weather Actions Mailchimp Actions
APACHECON North America
Look Inside
Custom plugins may:
- Implement rule conditions
- Implement rule actions
- Deploy rules
- Do anything an OSGi bundle may do (define new servlets, APIs, karaf
shell commands…)
APACHECON North America
Example deployments
http / Unomi public / port 8181
Unomi
Private url
CMS - Node 1 + MF Modules
CMS - Node 2 + MF Modules
CMS - Node 3 + MF Modules
Unomi 3
ES Data
Unomi 2
ES Data
Unomi 1
ES Data
Unomi
Public url
CMS
Public url
www
Internal network
http or
https
https / Unomi admin / port 9443
Architecture
Layers & Ports
Apache HTTP Server
Visitors
browsers
http or
https
tcp / ES Transport / port 9300
tcp / RMI + Hazelcast / ports 1099 + 5700-5800 Apache Unomi
nodes
ElasticSearch nodes
CMS nodes
tcp / ES Transport / port 9300
tcp / Hazelcast / ports 5700-5800
https / DX public / port 8080
APACHECON North America
Profiles
- Generic properties
- Goals
- Segments
- Scores
- Consents
{
"itemId" : "48563fd0-6319-4260-8dba-ae421beba26f",
"itemType" : "profile",
"version" : 91,
"properties" : {
"nbOfVisits" : 42,
"pageViewCount" : {
"digitall" : 7,
"systemscope" : 7
},
"lastVisit" : "2018-09-25T09:23:33Z",
"firstVisit" : "2018-02-10T17:15:25Z",
"preferredLanguage" : "en",
"previousVisit" : "2018-09-25T09:21:39Z",
"j:email" : "shuber@apache.org",
"emailNotificationsDisabled" : "false",
"j:organization" : "Jahia",
"j:firstName" : "Serge",
"j:lastName" : "Huber",
"j:nodename" : "root"
},
"systemProperties" : {
"goals" : {
"pageview_1519726765394StartReached" : "2018-09-25T09:23:33Z",
"_gu4inatp1TargetReached" : "2018-04-04T13:57:18Z",
},
"mergeIdentifier" : "root"
},
"segments" : [ “over30”, “male”, “technology” ],
"scores" : {
"scoring_1" : 0,
"scoring_0" : 0,
},
"mergedWith" : null,
"consents" : {
"digitall/tracking" : {
"scope" : "digitall",
"typeIdentifier" : "tracking",
"status" : "GRANTED",
"statusDate" : "2018-01-19T14:54:01Z",
"revokeDate" : "2020-01-19T14:54:01Z"
},
"digitall/newsletter" : {
"scope" : "digitall",
"typeIdentifier" : "newsletter",
"status" : "DENIED",
"statusDate" : "2018-01-22T16:15:05Z",
"revokeDate" : "2020-01-22T16:15:05Z"
}
}
}
APACHECON North America
Segments
Defined as conditions on profiles:
Rich people over 30:
a profile has income > 200’000
AND his age is over 30
An active visitor interested in technology:
a profile has read 10 pages with the tag “technology”
AND he has created 10 session in the last 10 days
APACHECON North America
Rule Engine
when
condition is true
then
actions are executed
in REAL-TIME !
APACHECON North America
Rule Engine
when
a page event occurs
then
increment profile page count
APACHECON North America
Rule Engine
when
a login event occurs
AND
it comes from a trusted third party
then
1. copy login account information into
profile
2. merge with other pre-existing profiles
3. send updated profile to external system
(CRM)
APACHECON North America
Conditions
Organized as a tree
Condition types:
- boolean (and, or, not)
- on event/session/profile
property values (equals, in list,
etc…)
- on existence of previous events
for a profile
- extensible, you can build your
own !
AND
age > 30
income > 200’000
has come back to the
site 3 times in the last
month
APACHECON North America
Actions
- executed when a rule
condition is satisfied
- executed as a list of actions,
executed sequentially
- actions can:
- update the current
profile
- push or pull data to a
different system
- be extended using
plugins !
Action sequence example:
1. Retrieve data from form
event and copy into profile
2. Update profile segments
3. Send updated profile to
Salesforce account
APACHECON North America
Integrations
Out of the box:
- Salesforce CRM integration
- Twitter sample
- Weather API (enrich session)
- Mailchimp (update lists)
Easy to build your own using
custom actions and plug into rules !
APACHECON North America
Jahia Marketing Factory
● Basically a UI built on top of Apache Unomi’s
REST API
● Uses AngularJS as a front-end framework
● Provides tight integration with the CMS
APACHECON North America
Others
- Building an advertisement server using
Apache Unomi
- Evaluating Unomi to build personalization
for a TV network’s website
Are you using/interested in Apache Unomi ?
Please let us know and reach out for help !
APACHECON North America
Let's integrate now !
Let’s add Apache Unomi to an existing
website
-> let’s use it for tracking
-> let’s see how we can view events coming
in
-> let’s look at profile examples
-> let’s use profile information to build
personalization !
APACHECON North America
Existing website
APACHECON North America
Add Javascript to send events to
Apache Unomi
Unomi tracker is an extension of the open
source Analytics.js tracking script
<script type="text/javascript">
var unomiOption = {
scope: 'unomiWebSite',
url: 'http://localhost:8181'
};
window.unomiTracker||(window.unomiTracker={}),function(){function e(e){for(unomiTracker.initialize({"Apache Uno
r=n.shift(),t=r.shift();unomiTracker[t]&&unomiTracker[t].apply(unomiTracker,r)}}for(var
n=[],r=["trackSubmit","trackClick","trackLink","trackForm","initialize","pageview","identify","reset","group","track","ready
length;t++){var i=r[t];window.unomiTracker[i]=function(e){return function(){var r=Array.prototype.slice.call(arguments);
r.unshift(e),n.push(r),window.unomiTracker}}(i)}unomiTracker.load=function(){var
n=document.createElement("script");n.type="text/javascript",n.async=!0,n.src=unomiOption.url+"/tracker/unomi-
tracker.min.js",n.addEventListener?n.addEventListener("load",function(n){"function"==typeof
e&&e(n)},!1):n.onreadystatechange=function(){"complete"!==this.readyState&&"loaded"!==this.readyState||e(window.
r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(n,r)},document.addEventListener("DOMC
</script>
APACHECON North America
View events
unomi:event-tail
APACHECON North America
View profiles
unomi:profile-view
APACHECON North America
What's next for Apache Unomi ?
● Graduate to top level project !
● Improve scalability (Kafka integration)
● Implement final version of CXS spec
● Provide a web UI
APACHECON North America
CXS GraphQL API
● CXS Specification switched
from REST API to GraphQL API
a year ago -> must implement
the changes in Apache Unomi
(uses REST API for the
moment)
● GraphQL makes it easy to
integrate with very different
types of clients (web, mobile)
● Clients such as GraphiQL or
GraphQL Playground make
learning and testing GraphQL
APIs easy and fun !
APACHECON North America
New User Interface !
Jahia is considering contributing parts of
the Marketing Factory web UI to Apache
Unomi !
APACHECON North America
Our community
Don’t be shy !
Use the communication channel you prefer
Mailing lists:
users@unomi.apache.org
dev@unomi.apache.org
JIRA:
https://issues.apache.org/jira/projects/UNOMI
ASF Slack:
#unomi, https://the-asf.slack.com/messages/CBP2Z98Q7
APACHECON North America
More resources
Website : https://unomi.apache.org
Github (mirror): https://github.com/apache/incubator-unomi
OASIS Context Server Technical Committee:
https://www.oasis-
open.org/committees/tc_home.php?wg_abbrev=cxs
OASIS Context Server API on Github:
https://github.com/sergehuber/contextserver-graphql-api
APACHECON North America
Questions
… and hopefully good answers
APACHECON North America
Thanks
- Jean Baptiste for all the mentoring and dedication
throughout the years
- Bertrand Delacretaz for helping and supporting the
project
- All the contributors over the years !
- Some very active newcomers (thanks Francois Papon !
Hope they will be more soon!)
- The community of users !
THANK YOU
● SERGE HUBER
● @sergehuber
● shuber@apache.org
shuber@jahia.com

More Related Content

What's hot

Prometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring SystemPrometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring SystemFabian Reinartz
 
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
Prometheus
PrometheusPrometheus
Prometheuswyukawa
 
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기Amazon Web Services Korea
 
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...Jitendra Bafna
 
IoT Apps with AWS IoT and Websockets
IoT Apps with AWS IoT and Websockets IoT Apps with AWS IoT and Websockets
IoT Apps with AWS IoT and Websockets Amazon Web Services
 
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌BESPIN GLOBAL
 
Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017
Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017
Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017Amazon Web Services Korea
 
MySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaMySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaYoungHeon (Roy) Kim
 
Data Streaming Ecosystem Management at Booking.com
Data Streaming Ecosystem Management at Booking.com Data Streaming Ecosystem Management at Booking.com
Data Streaming Ecosystem Management at Booking.com confluent
 
AWS CloudFormation Session
AWS CloudFormation SessionAWS CloudFormation Session
AWS CloudFormation SessionKamal Maiti
 
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)Amazon Web Services Korea
 
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon Web Services Korea
 

What's hot (20)

Prometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring SystemPrometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring System
 
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
 
Prometheus
PrometheusPrometheus
Prometheus
 
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
 
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...
 
IoT Apps with AWS IoT and Websockets
IoT Apps with AWS IoT and Websockets IoT Apps with AWS IoT and Websockets
IoT Apps with AWS IoT and Websockets
 
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
 
Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017
Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017
Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017
 
MySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaMySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & Grafana
 
Kong
KongKong
Kong
 
Okta docs
Okta docsOkta docs
Okta docs
 
Kong API
Kong APIKong API
Kong API
 
Data Streaming Ecosystem Management at Booking.com
Data Streaming Ecosystem Management at Booking.com Data Streaming Ecosystem Management at Booking.com
Data Streaming Ecosystem Management at Booking.com
 
Deep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormationDeep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormation
 
AWS CloudFormation Session
AWS CloudFormation SessionAWS CloudFormation Session
AWS CloudFormation Session
 
Intro to AI & ML at Amazon
Intro to AI & ML at AmazonIntro to AI & ML at Amazon
Intro to AI & ML at Amazon
 
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
 
SDDC Strategy 1.3
SDDC Strategy 1.3SDDC Strategy 1.3
SDDC Strategy 1.3
 
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
 
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
 

Similar to ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache unomi cdp presentation

Preparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom DomainsPreparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom DomainsAtlassian
 
Take back the control of your customer data with Apache Unomi - Developers Me...
Take back the control of your customer data with Apache Unomi - Developers Me...Take back the control of your customer data with Apache Unomi - Developers Me...
Take back the control of your customer data with Apache Unomi - Developers Me...Jahia Solutions Group
 
01_Team_03_CS_591_Project
01_Team_03_CS_591_Project01_Team_03_CS_591_Project
01_Team_03_CS_591_Projectharsh mehta
 
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data Platforms
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data PlatformsData Engineer's Lunch #81: Reverse ETL Tools for Modern Data Platforms
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data PlatformsAnant Corporation
 
Improve your productivity with Microsoft Fow - Power to the people
Improve your productivity with Microsoft Fow - Power to the peopleImprove your productivity with Microsoft Fow - Power to the people
Improve your productivity with Microsoft Fow - Power to the peopleserge luca
 
WSO2Con EU 2015: An Introduction to the WSO2 Data Analytics Platform
WSO2Con EU 2015: An Introduction to the WSO2 Data Analytics PlatformWSO2Con EU 2015: An Introduction to the WSO2 Data Analytics Platform
WSO2Con EU 2015: An Introduction to the WSO2 Data Analytics PlatformWSO2
 
James Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 PatternsJames Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 Patternsakqaanoraks
 
(ARC346) Scaling To 25 Billion Daily Requests Within 3 Months On AWS
(ARC346) Scaling To 25 Billion Daily Requests Within 3 Months On AWS(ARC346) Scaling To 25 Billion Daily Requests Within 3 Months On AWS
(ARC346) Scaling To 25 Billion Daily Requests Within 3 Months On AWSAmazon Web Services
 
Introducing the Hub for Data Orchestration
Introducing the Hub for Data OrchestrationIntroducing the Hub for Data Orchestration
Introducing the Hub for Data OrchestrationAlluxio, Inc.
 
WSO2Con'14 US - Roadmap to a Connected Business
WSO2Con'14 US - Roadmap to a Connected BusinessWSO2Con'14 US - Roadmap to a Connected Business
WSO2Con'14 US - Roadmap to a Connected BusinessAsanka Abeysinghe
 
Max Prin - brightonSEO San Diego 2023 - Developing SEO Tools
Max Prin - brightonSEO San Diego 2023 - Developing SEO ToolsMax Prin - brightonSEO San Diego 2023 - Developing SEO Tools
Max Prin - brightonSEO San Diego 2023 - Developing SEO ToolsMax Prin
 
Online fast food django.docx
Online fast food django.docxOnline fast food django.docx
Online fast food django.docxvidhi184862
 
Introduction to WSO2 Analytics Platform: 2016 Q2 Update
Introduction to WSO2 Analytics Platform: 2016 Q2 UpdateIntroduction to WSO2 Analytics Platform: 2016 Q2 Update
Introduction to WSO2 Analytics Platform: 2016 Q2 UpdateSrinath Perera
 
Proof of Concept: Adobe Analytics Live Stream on Amazon Web Services
Proof of Concept: Adobe Analytics Live Stream on Amazon Web ServicesProof of Concept: Adobe Analytics Live Stream on Amazon Web Services
Proof of Concept: Adobe Analytics Live Stream on Amazon Web ServicesYASH Technologies
 
Flink Forward Berlin 2017 Keynote: Ferd Scheepers - Taking away customer fric...
Flink Forward Berlin 2017 Keynote: Ferd Scheepers - Taking away customer fric...Flink Forward Berlin 2017 Keynote: Ferd Scheepers - Taking away customer fric...
Flink Forward Berlin 2017 Keynote: Ferd Scheepers - Taking away customer fric...Flink Forward
 
Data-Driven Transformation: Leveraging Big Data at Showtime with Apache Spark
Data-Driven Transformation: Leveraging Big Data at Showtime with Apache SparkData-Driven Transformation: Leveraging Big Data at Showtime with Apache Spark
Data-Driven Transformation: Leveraging Big Data at Showtime with Apache SparkDatabricks
 
Jeremy cabral search marketing summit - scraping data-driven content (1)
Jeremy cabral   search marketing summit - scraping data-driven content (1)Jeremy cabral   search marketing summit - scraping data-driven content (1)
Jeremy cabral search marketing summit - scraping data-driven content (1)Jeremy Cabral
 

Similar to ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache unomi cdp presentation (20)

Preparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom DomainsPreparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom Domains
 
Take back the control of your customer data with Apache Unomi - Developers Me...
Take back the control of your customer data with Apache Unomi - Developers Me...Take back the control of your customer data with Apache Unomi - Developers Me...
Take back the control of your customer data with Apache Unomi - Developers Me...
 
01_Team_03_CS_591_Project
01_Team_03_CS_591_Project01_Team_03_CS_591_Project
01_Team_03_CS_591_Project
 
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data Platforms
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data PlatformsData Engineer's Lunch #81: Reverse ETL Tools for Modern Data Platforms
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data Platforms
 
Improve your productivity with Microsoft Fow - Power to the people
Improve your productivity with Microsoft Fow - Power to the peopleImprove your productivity with Microsoft Fow - Power to the people
Improve your productivity with Microsoft Fow - Power to the people
 
WSO2Con EU 2015: An Introduction to the WSO2 Data Analytics Platform
WSO2Con EU 2015: An Introduction to the WSO2 Data Analytics PlatformWSO2Con EU 2015: An Introduction to the WSO2 Data Analytics Platform
WSO2Con EU 2015: An Introduction to the WSO2 Data Analytics Platform
 
James Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 PatternsJames Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 Patterns
 
(ARC346) Scaling To 25 Billion Daily Requests Within 3 Months On AWS
(ARC346) Scaling To 25 Billion Daily Requests Within 3 Months On AWS(ARC346) Scaling To 25 Billion Daily Requests Within 3 Months On AWS
(ARC346) Scaling To 25 Billion Daily Requests Within 3 Months On AWS
 
presentation slides
presentation slidespresentation slides
presentation slides
 
Introducing the Hub for Data Orchestration
Introducing the Hub for Data OrchestrationIntroducing the Hub for Data Orchestration
Introducing the Hub for Data Orchestration
 
WSO2Con'14 US - Roadmap to a Connected Business
WSO2Con'14 US - Roadmap to a Connected BusinessWSO2Con'14 US - Roadmap to a Connected Business
WSO2Con'14 US - Roadmap to a Connected Business
 
Case study on search engine and toolbar with a chance to win prizes
Case study on search engine and toolbar with a chance to win prizesCase study on search engine and toolbar with a chance to win prizes
Case study on search engine and toolbar with a chance to win prizes
 
Max Prin - brightonSEO San Diego 2023 - Developing SEO Tools
Max Prin - brightonSEO San Diego 2023 - Developing SEO ToolsMax Prin - brightonSEO San Diego 2023 - Developing SEO Tools
Max Prin - brightonSEO San Diego 2023 - Developing SEO Tools
 
Online fast food django.docx
Online fast food django.docxOnline fast food django.docx
Online fast food django.docx
 
Introduction to WSO2 Analytics Platform: 2016 Q2 Update
Introduction to WSO2 Analytics Platform: 2016 Q2 UpdateIntroduction to WSO2 Analytics Platform: 2016 Q2 Update
Introduction to WSO2 Analytics Platform: 2016 Q2 Update
 
#TDXRecap India tour
#TDXRecap India tour#TDXRecap India tour
#TDXRecap India tour
 
Proof of Concept: Adobe Analytics Live Stream on Amazon Web Services
Proof of Concept: Adobe Analytics Live Stream on Amazon Web ServicesProof of Concept: Adobe Analytics Live Stream on Amazon Web Services
Proof of Concept: Adobe Analytics Live Stream on Amazon Web Services
 
Flink Forward Berlin 2017 Keynote: Ferd Scheepers - Taking away customer fric...
Flink Forward Berlin 2017 Keynote: Ferd Scheepers - Taking away customer fric...Flink Forward Berlin 2017 Keynote: Ferd Scheepers - Taking away customer fric...
Flink Forward Berlin 2017 Keynote: Ferd Scheepers - Taking away customer fric...
 
Data-Driven Transformation: Leveraging Big Data at Showtime with Apache Spark
Data-Driven Transformation: Leveraging Big Data at Showtime with Apache SparkData-Driven Transformation: Leveraging Big Data at Showtime with Apache Spark
Data-Driven Transformation: Leveraging Big Data at Showtime with Apache Spark
 
Jeremy cabral search marketing summit - scraping data-driven content (1)
Jeremy cabral   search marketing summit - scraping data-driven content (1)Jeremy cabral   search marketing summit - scraping data-driven content (1)
Jeremy cabral search marketing summit - scraping data-driven content (1)
 

More from Serge Huber

GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL IntroductionSerge Huber
 
Introducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerIntroducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerSerge Huber
 
Jahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafJahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafSerge Huber
 
DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)Serge Huber
 
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...Serge Huber
 
Apache Unomi In Depth - ApacheCon EU 2015 Session
Apache Unomi In Depth - ApacheCon EU 2015 SessionApache Unomi In Depth - ApacheCon EU 2015 Session
Apache Unomi In Depth - ApacheCon EU 2015 SessionSerge Huber
 
Introducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionIntroducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionSerge Huber
 
Webinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.comWebinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.comSerge Huber
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutesSerge Huber
 
Portets to composite applications
Portets to composite applicationsPortets to composite applications
Portets to composite applicationsSerge Huber
 

More from Serge Huber (10)

GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
 
Introducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerIntroducing the Jahia Log Analyzer
Introducing the Jahia Log Analyzer
 
Jahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafJahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karaf
 
DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)
 
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
 
Apache Unomi In Depth - ApacheCon EU 2015 Session
Apache Unomi In Depth - ApacheCon EU 2015 SessionApache Unomi In Depth - ApacheCon EU 2015 Session
Apache Unomi In Depth - ApacheCon EU 2015 Session
 
Introducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionIntroducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 Session
 
Webinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.comWebinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.com
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutes
 
Portets to composite applications
Portets to composite applicationsPortets to composite applications
Portets to composite applications
 

Recently uploaded

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...itnewsafrica
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Recently uploaded (20)

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache unomi cdp presentation

  • 1. APACHECON North America Sept. 24-27, 2018 Apache Unomi: a Customer Data Platform … ● Serge Huber Apache Unomi / Jahia @sergehuber shuber@apache.org
  • 2. APACHECON North America Introduction 20 years Web Dev experience Coder at heart (since I’m 7) Very intested in User experiences Co-founder & CTO of Jahia Apache Committer (Jackrabbit, Unomi) Co-chair OASIS Context Server TC
  • 3. APACHECON North America What is a Customer Data Platform ? ● From Wikipedia: “Customer Data Platform (CDP) is a marketer-based management system. It creates a persistent, unified customer database that is accessible to other systems. Data is pulled from multiple sources, cleaned and combined to create a single customer profile. This structured data is then made available to other marketing systems. CDP provides real-time segmentation for personalized marketing. CDP is currently a $300 million industry and projected to reach $1 billion by 2019”
  • 4. APACHECON North America Why do I need one ? ● If you want to... ○ learn more about your visitors ○ deliver personalized experiences on your website or mobile app ○ make sure you comply with stricter regulations now in place (GDPR) or upcoming ○ be in control of your analytics and personalization (instead of giving away your data to others like Google Analytics) ○ avoid reinventing the wheel by building your own customer database, related hooks and segmentation
  • 5. APACHECON North America What is Apache Unomi ? ● Apache Unomi is an open source CDP ● A Java platform based on a completely modular and highly scalable architecture ● Is the reference implementation of the ConteXt Server specification standard (CXS) ● Is event-based and uses ElasticSearch as a scalable backend for persistence and querying
  • 6. APACHECON North America What is CXS ? ● The ConteXt Server Specification (to be renamed to CDP standard !) ● Being established at the OASIS Foundation ● Defines a standard to deliver personalized experiences ● Allow for interoperability and customer data exchanges
  • 7. APACHECON North America Why was the project started at Apache ? ● No open source implementation existed ! ● Apache is well recognized to provide platform solutions ● Apache is truly independant (eg. Github == Microsoft) ● Apache provides highly recognized and solid infrastructure ● Community is great, good things will automatically happen to the code
  • 8. APACHECON North America Apache Unomi functionalities
  • 9. APACHECON North America Why privacy is now critical ! ● GDPR : A new EU directive that imposes strict conditions on dealing with customer data ● Fines are very expensive, up to 4% of annual company turnover or €20 million, whichever is higher ! ● Consent for data usage is now explicitly required -> lots of ugly/buggy popups on web browsers, and most are not compliant ! ● Users must be able to download their profiles or delete them !
  • 10. APACHECON North America Unomi supports all that ! ● Profile properties management ● Defines “personal identifiers” properties ● “Anonymize my profile” endpoint (erase any personal identifier) ● Consent management (get AND update) ● “Private browsing” ● Downloading profile
  • 11. APACHECON North America Consent Management UI Consent definition (outside of Unomi’s scope)
  • 12. APACHECON North America Consent Management UI Built on top of Unomi’s Consent API End user user interface (updated through consent events) Reporting
  • 13. APACHECON North America Performance & scalability ● At Jahia we test Apache Unomi on a weekly basis with over 5 million profiles ● Server is designed to be scalable ● ElasticSearch cluster allows growth to achieve proper scalability ● Known bottlenecks: ○ ingestion speed ○ rule processing ● Solutions: ○ Add more ES & Unomi nodes
  • 14. APACHECON North America Use case : web site tracking & personalization
  • 15. APACHECON North America Use case : mobile app & personalization Mobile app CMS Apache Unomi Send profile id & session id Get context for profile Send app active event Send screen change event Get personalized content or screen Execute filters for profile Get personalized content or screens
  • 16. APACHECON North America Architecture ElasticSearch cluster Apache Karaf (cluster) CXS REST API (using Apache CXF + Servlets) (Dev) Shell Commands Rule Engine Profile Service Segment Service Definitions Service (conditions, actions) Query Service Event Service Personalization Service Goals Service Salesforce Actions Weather Actions Mailchimp Actions
  • 17. APACHECON North America Look Inside Custom plugins may: - Implement rule conditions - Implement rule actions - Deploy rules - Do anything an OSGi bundle may do (define new servlets, APIs, karaf shell commands…)
  • 18. APACHECON North America Example deployments http / Unomi public / port 8181 Unomi Private url CMS - Node 1 + MF Modules CMS - Node 2 + MF Modules CMS - Node 3 + MF Modules Unomi 3 ES Data Unomi 2 ES Data Unomi 1 ES Data Unomi Public url CMS Public url www Internal network http or https https / Unomi admin / port 9443 Architecture Layers & Ports Apache HTTP Server Visitors browsers http or https tcp / ES Transport / port 9300 tcp / RMI + Hazelcast / ports 1099 + 5700-5800 Apache Unomi nodes ElasticSearch nodes CMS nodes tcp / ES Transport / port 9300 tcp / Hazelcast / ports 5700-5800 https / DX public / port 8080
  • 19. APACHECON North America Profiles - Generic properties - Goals - Segments - Scores - Consents { "itemId" : "48563fd0-6319-4260-8dba-ae421beba26f", "itemType" : "profile", "version" : 91, "properties" : { "nbOfVisits" : 42, "pageViewCount" : { "digitall" : 7, "systemscope" : 7 }, "lastVisit" : "2018-09-25T09:23:33Z", "firstVisit" : "2018-02-10T17:15:25Z", "preferredLanguage" : "en", "previousVisit" : "2018-09-25T09:21:39Z", "j:email" : "shuber@apache.org", "emailNotificationsDisabled" : "false", "j:organization" : "Jahia", "j:firstName" : "Serge", "j:lastName" : "Huber", "j:nodename" : "root" }, "systemProperties" : { "goals" : { "pageview_1519726765394StartReached" : "2018-09-25T09:23:33Z", "_gu4inatp1TargetReached" : "2018-04-04T13:57:18Z", }, "mergeIdentifier" : "root" }, "segments" : [ “over30”, “male”, “technology” ], "scores" : { "scoring_1" : 0, "scoring_0" : 0, }, "mergedWith" : null, "consents" : { "digitall/tracking" : { "scope" : "digitall", "typeIdentifier" : "tracking", "status" : "GRANTED", "statusDate" : "2018-01-19T14:54:01Z", "revokeDate" : "2020-01-19T14:54:01Z" }, "digitall/newsletter" : { "scope" : "digitall", "typeIdentifier" : "newsletter", "status" : "DENIED", "statusDate" : "2018-01-22T16:15:05Z", "revokeDate" : "2020-01-22T16:15:05Z" } } }
  • 20. APACHECON North America Segments Defined as conditions on profiles: Rich people over 30: a profile has income > 200’000 AND his age is over 30 An active visitor interested in technology: a profile has read 10 pages with the tag “technology” AND he has created 10 session in the last 10 days
  • 21. APACHECON North America Rule Engine when condition is true then actions are executed in REAL-TIME !
  • 22. APACHECON North America Rule Engine when a page event occurs then increment profile page count
  • 23. APACHECON North America Rule Engine when a login event occurs AND it comes from a trusted third party then 1. copy login account information into profile 2. merge with other pre-existing profiles 3. send updated profile to external system (CRM)
  • 24. APACHECON North America Conditions Organized as a tree Condition types: - boolean (and, or, not) - on event/session/profile property values (equals, in list, etc…) - on existence of previous events for a profile - extensible, you can build your own ! AND age > 30 income > 200’000 has come back to the site 3 times in the last month
  • 25. APACHECON North America Actions - executed when a rule condition is satisfied - executed as a list of actions, executed sequentially - actions can: - update the current profile - push or pull data to a different system - be extended using plugins ! Action sequence example: 1. Retrieve data from form event and copy into profile 2. Update profile segments 3. Send updated profile to Salesforce account
  • 26. APACHECON North America Integrations Out of the box: - Salesforce CRM integration - Twitter sample - Weather API (enrich session) - Mailchimp (update lists) Easy to build your own using custom actions and plug into rules !
  • 27. APACHECON North America Jahia Marketing Factory ● Basically a UI built on top of Apache Unomi’s REST API ● Uses AngularJS as a front-end framework ● Provides tight integration with the CMS
  • 28. APACHECON North America Others - Building an advertisement server using Apache Unomi - Evaluating Unomi to build personalization for a TV network’s website Are you using/interested in Apache Unomi ? Please let us know and reach out for help !
  • 29. APACHECON North America Let's integrate now ! Let’s add Apache Unomi to an existing website -> let’s use it for tracking -> let’s see how we can view events coming in -> let’s look at profile examples -> let’s use profile information to build personalization !
  • 31. APACHECON North America Add Javascript to send events to Apache Unomi Unomi tracker is an extension of the open source Analytics.js tracking script <script type="text/javascript"> var unomiOption = { scope: 'unomiWebSite', url: 'http://localhost:8181' }; window.unomiTracker||(window.unomiTracker={}),function(){function e(e){for(unomiTracker.initialize({"Apache Uno r=n.shift(),t=r.shift();unomiTracker[t]&&unomiTracker[t].apply(unomiTracker,r)}}for(var n=[],r=["trackSubmit","trackClick","trackLink","trackForm","initialize","pageview","identify","reset","group","track","ready length;t++){var i=r[t];window.unomiTracker[i]=function(e){return function(){var r=Array.prototype.slice.call(arguments); r.unshift(e),n.push(r),window.unomiTracker}}(i)}unomiTracker.load=function(){var n=document.createElement("script");n.type="text/javascript",n.async=!0,n.src=unomiOption.url+"/tracker/unomi- tracker.min.js",n.addEventListener?n.addEventListener("load",function(n){"function"==typeof e&&e(n)},!1):n.onreadystatechange=function(){"complete"!==this.readyState&&"loaded"!==this.readyState||e(window. r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(n,r)},document.addEventListener("DOMC </script>
  • 32. APACHECON North America View events unomi:event-tail
  • 33. APACHECON North America View profiles unomi:profile-view
  • 34. APACHECON North America What's next for Apache Unomi ? ● Graduate to top level project ! ● Improve scalability (Kafka integration) ● Implement final version of CXS spec ● Provide a web UI
  • 35. APACHECON North America CXS GraphQL API ● CXS Specification switched from REST API to GraphQL API a year ago -> must implement the changes in Apache Unomi (uses REST API for the moment) ● GraphQL makes it easy to integrate with very different types of clients (web, mobile) ● Clients such as GraphiQL or GraphQL Playground make learning and testing GraphQL APIs easy and fun !
  • 36. APACHECON North America New User Interface ! Jahia is considering contributing parts of the Marketing Factory web UI to Apache Unomi !
  • 37. APACHECON North America Our community Don’t be shy ! Use the communication channel you prefer Mailing lists: users@unomi.apache.org dev@unomi.apache.org JIRA: https://issues.apache.org/jira/projects/UNOMI ASF Slack: #unomi, https://the-asf.slack.com/messages/CBP2Z98Q7
  • 38. APACHECON North America More resources Website : https://unomi.apache.org Github (mirror): https://github.com/apache/incubator-unomi OASIS Context Server Technical Committee: https://www.oasis- open.org/committees/tc_home.php?wg_abbrev=cxs OASIS Context Server API on Github: https://github.com/sergehuber/contextserver-graphql-api
  • 39. APACHECON North America Questions … and hopefully good answers
  • 40. APACHECON North America Thanks - Jean Baptiste for all the mentoring and dedication throughout the years - Bertrand Delacretaz for helping and supporting the project - All the contributors over the years ! - Some very active newcomers (thanks Francois Papon ! Hope they will be more soon!) - The community of users !
  • 41. THANK YOU ● SERGE HUBER ● @sergehuber ● shuber@apache.org shuber@jahia.com