storytelling and call-to-action • Grow the value of the customer • Suggest the most suitable products and services • Accelerate on-boarding and increase conversions • Generate recurring revenues, evolving loyalty into membership • Send personalized noti fi cations • Delight the customer with gami fi cation • Make digital experiences come alive in extended reality • Nudge advocacy 01 Listen to customers across channels 02 Deliver relevant experiences at scale 03 Transform prospects into customers for life Neosperience Cloud allows to create personalized, relevant experiences that strengthen the relationship with the customer across touchpoints: web, app, platforms, point of sale The fi rst digital experience platform to establish empathic relationships with customers that takes into account their uniqueness. A set of application modules condensing multi-disciplinary skills: data scientists, designers, software architects, cognitive, behavioral and social psychologists, to unleash your brand’s potential. Understand Engage Grow Neosperience Cloud
requirements Di ff erent requirements • Deep Learning models • Integrating with 3rd party products • Di ff erent data types to persist • Need for speed and scalability • Team communication has a lot of friction: IT operation and dev teams
the monolith • Multi-region deploy of SpringMVC / Java on Apache Tomcat / JBoss • Shared RDS database managed by Hibernate • Autoscaling group for EC2 instances, Elastic IP Pros ✓ Everything within a single package ✓ Simple CI work fl ow ✓ Easy services coordination Cons - Lifecycle: one change in code requires a full release of Neosperience - Scalability / Costs: planning autoscale for di ff erent usages is not easy - Everything is a REST endpoint
interaction behavior Personalised Content Proximity Marketing Nudging & Gami fi cation Image Personalised Commerce Personalised Advertising Customer Base Channels • Start separating concerns • Every component has the same technological stack • De fi ne interfaces between components • It’s called microservices
• Spring Boot/Cloud on Java Stack • Docker image for each service within NGINX • DynamoDB used as façade towards clients • RDS managed through Spring Data • Coordination service (Module Manager) Pros ✓ Smaller services, same technology for everything ✓ Immutable deployments: from CI to Docker registry ✓ Easy services coordination Cons - Still paying for idle (database, instances) - Manual provisioning of resources (through Beanstalk) - Everything is a REST endpoint
ephemeral compute power that comes into existence on request and disappears immediately after use. Use of this architecture can mitigate some security concerns such as security patching and SSH access control, and can make much more e ff i cient use of compute resources. These systems cost very little to operate and can have inbuilt scaling features.” — ThoughtWorks, 2016
Nudging & Gami fi cation Image Personalised Commerce Personalised Advertising Customer Base Channels Customer Generations Search Customer CI / CD • Move to cloud native adoption • Script cloud resources • Each service has its own persistence • Migrate data models Neosperience Cloud
• Triggers to Lambda functions • Each service de fi nes its own persistence • Communication is handled through Kinesis • Immutable deployments Pros ✓ Many small packages ✓ Extremely fast release cycles (smaller changes) ✓ No servers to manage (woot-woot) ✓ Scalability at its best / Cost reduction ✓ There is no di ff erence between dev/stage/ production Cons - Required a shift in team perspective towards software development (there is no one size fi ts all architecture) - Expensive when utilization close to 100% - No support for dedicated hardware
Serverless and microservices. The questions we faced How micro is a microservice? Decompose your system into domain speci fi c computing units using Domain Driven Development (DDD) Do we want to reinvent the wheel? AWS provides a variety of managed services that can ease out software development, reducing time to market of orders of magnitude. Every time we had to implement a new functionality we asked ourselves whether there was an AWS service for that. How to deal with the outside world? Neosperience is a B2B2C ISV vendor. Our product can be used SaaS by companies or integrated through API. We need to rely on web standards REST and OAuth2 How about vendor lock-in? Serverless does not lock you in. Data does. But it’s the same with languages, tools or frameworks.
microservices each domain ✓a dozen of support services (monitoring, maintenance, OAuth2, Organization, multi-tenancy, etc.) Serverless ✓100% Serverless except for ML model training Lambda Functions ✓200+ functions AWS Resources ✓400+ AWS resources ✓managed through a 15+ CloudFormation stacks Adopting microservices can really make our life as ISV better, with a number of bene fi ts Neosperience is a 100% Serverless cloud solution Time to market ✓improved from months to weeks ✓business features released every sprint ✓technical features released multiple times a week Costs ✓reduced by an order of magnitude Team ✓developers provision cloud resources ✓innovation in encouraged, failure impact is bounded ✓shifted from running after business requirements to waiting for business requirements Happiness 😀 Dev Team has full control on delivery 😀 Business Team has feature delivery