SlideShare a Scribd company logo
1 of 117
Download to read offline
Modules or Microservices?
@Sander_Mak
About Sander
Fellow, Software Architect
@ Luminis
Experience in modular
development stacks
Conference Speaker & Author
@Sander_Mak
Modules or Microservices?
@Sander_Mak
Modules or Microservices?
YES
@Sander_Mak
Modules XOR Microservices?
YES
@Sander_Mak
Modules XOR Microservices?
IT DEPENDS
@Sander_Mak
Let's Talk About Modularity
Why Modularity?
Why Modularity?
Why Modularity?
No. 1 Software
Architecture Principle
@Sander_Mak
The Three Tenets of Modularity
Strong
Encapsulation
@Sander_Mak
The Three Tenets of Modularity
Strong
Encapsulation
Well-Defined
Interfaces
@Sander_Mak
The Three Tenets of Modularity
Explicit
Dependencies
Strong
Encapsulation
Well-Defined
Interfaces
@Sander_Mak
Modularity
is the ultimate
Agile Tool
@Sander_Mak
Let's Talk About Microservices
@Sander_Mak
A Microservice is...
Independently deployable
Implementing a business capability
Doing one thing, and doing it well
Communicating over the network
What's This?
What's This?
Microservices
Devroom
What's This?
Microservices
Devroom
Despair
What's This?
Microservices
Devroom
Despair
Praying for a
Better Solution
@Sander_Mak
Yes, Microservices Are Hard
However...
@Sander_Mak
Yes, Microservices Are Hard
However...
Introspection: When (not)
@Sander_Mak
Yes, Microservices Are Hard
However...
Introspection: When (not)
Alternative: Modules
@Sander_Mak
Why?
Manage Complexity
Scaling
Resilience
@Sander_Mak
Why?
Manage Complexity
Scaling
Resilience
Modularity
In Disguise!
@Sander_Mak
users
assignments
learningmaterial
students
grading
courses
attendance
Microservices
@Sander_Mak
users
assignments
learningmaterial
students
grading
courses
attendance
Microservices Monolith?
users
studentslearningmaterial
shipping
courses
forecasting
attendance
@Sander_Mak
users
assignments
learningmaterial
students
grading
courses
attendance
Microservices Monolith?
users
studentslearningmaterial
shipping
courses
forecasting
attendance
@Sander_Mak
Features
Cost
@Sander_Mak
Messy Monolith
Features
Cost
@Sander_Mak
Messy Monolith
Microservices
All The Way
Features
Cost
@Sander_Mak
Messy Monolith
Microservices
All The Way
Features
Cost
@Sander_Mak
Microservices:
Distributed system
Service Discovery
?
?
?
?
users
assignments
learningmaterial
students
grading
courses
attendance
@Sander_Mak
users
assignments
learningmaterial
students
grading
courses
attendance
Microservices:
Distributed system
Network Fallacies
@Sander_Mak
users
assignments
learningmaterial
students
grading
courses
attendance
Microservices:
Distributed system
Deployment
@Sander_Mak
Microservices:
Distributed system
Config. Management
v1
v2
v3
v2
v3
at least x4
(DTAP)
users
assignments
learningmaterial
students
grading
courses
attendance
@Sander_Mak
Microservices: Security
users
assignments
learningmaterial
students
grading
courses
attendance
Distributed system
@Sander_Mak
Messy Monolith
Microservices
All The Way
Features
Cost
@Sander_Mak
Messy Monolith
Microservices
All The Way
Features
Cost
But... vendors?!
@Sander_Mak
Messy Monolith
Microservices
All The Way
Features
Cost
But... vendors?!
Won't magically
transform your
organization!
@Sander_Mak
Let's Talk About Modules
@Sander_Mak
users
assignments
learningmaterial
students
grading
courses
attendance
Microservices
@Sander_Mak
users
assignments
learningmaterial
students
grading
courses
attendance
Microservices Monolith?
users
studentslearningmaterial
shipping
courses
forecasting
attendance
@Sander_Mak
Microservices Modules!
users
assignments
learningmaterial
students
grading
courses
attendance
Modular app users
assignments
learningmaterial
students
grading
courses
attendance
@Sander_Mak
Messy Monolith
Microservices
All The Way
Modular
App
Features
Cost
@Sander_Mak
Messy Monolith
Microservices
All The Way
Modular
App
Features
Cost
@Sander_Mak
So, Modules.
Did You Mean Objects?
@Sander_Mak
So, Modules.
Did You Mean Objects?
Close, but Too Fine-grained.
@Sander_Mak
Module Systems
@Sander_Mak
Module Systems
Java
OSGi
Java 9
@Sander_Mak
Module Systems
Java
OSGi
Java 9
JavaScript
...
ES2015 Modules
@Sander_Mak
Module Systems
Java
OSGi
Java 9
JavaScript
...
ES2015 Modules
C++
C++20?
@Sander_Mak
Module Systems
Java
OSGi
Java 9
JavaScript
...
ES2015 Modules
C++
C++20?
.Net
NuGet
.Net Core
@Sander_Mak
Explicit
Dependencies
Strong
Encapsulation
Well-Defined
Interfaces
Module Systems
Java
OSGi
Java 9
JavaScript
...
ES2015 Modules
C++
C++20?
.Net
NuGet
.Net Core
@Sander_Mak
Module Systems: Java 9
module attendance {
exports attendance.api;
requires students;
requires courses;
}
@Sander_Mak
Module Systems: Java 9
module attendance {
exports attendance.api;
requires students;
requires courses;
}
Strong
Encapsulation
@Sander_Mak
Module Systems: Java 9
module attendance {
exports attendance.api;
requires students;
requires courses;
}
Strong
Encapsulation
Well-Defined
Interfaces
@Sander_Mak
Module Systems: Java 9
module attendance {
exports attendance.api;
requires students;
requires courses;
}
Explicit
Dependencies
Strong
Encapsulation
Well-Defined
Interfaces
@Sander_Mak
Module Systems: Java 9
Module Resolution
(Reliable Configuration)
Increased Security
(Hide Platform Internals)
@Sander_Mak
Module Systems: ES2015
export function sq(i) {
return secret(i);
}
function secret(i) { return i * i; }
@Sander_Mak
Module Systems: ES2015
export function sq(i) {
return secret(i);
}
function secret(i) { return i * i; }
import { sq } from mymodule;
console.log("Two squared", sq(2));
@Sander_Mak
Module Systems: ES2015
export function sq(i) {
return secret(i);
}
function secret(i) { return i * i; }
Strong
Encapsulation
import { sq } from mymodule;
console.log("Two squared", sq(2));
@Sander_Mak
Module Systems: ES2015
export function sq(i) {
return secret(i);
}
function secret(i) { return i * i; }
Strong
Encapsulation
Well-Defined
Interfaces
import { sq } from mymodule;
console.log("Two squared", sq(2));
@Sander_Mak
Module Systems: ES2015
export function sq(i) {
return secret(i);
}
function secret(i) { return i * i; }
Explicit
Dependencies
Strong
Encapsulation
Well-Defined
Interfaces
import { sq } from mymodule;
console.log("Two squared", sq(2));
@Sander_Mak
Module Systems: ES2015
export function sq(i) {
return secret(i);
}
function secret(i) { return i * i; }
import { sq } from mymodule;
console.log("Two squared", sq(2));
Consider
TypeScript
@Sander_Mak
Module Systems: ES2015
export function sq(i) {
return secret(i);
}
function secret(i) { return i * i; }
Well-Defined
Interfaces
import { sq } from mymodule;
console.log("Two squared", sq(2));
Consider
TypeScript
@Sander_Mak
Module Systems: ES2015
export function sq(i) {
return secret(i);
}
function secret(i) { return i * i; }
import { sq } from mymodule;
console.log("Two squared", sq(2)); (let's not go there...)
@Sander_Mak
Module Systems: C++20?
module mymodule;
export int sq(int i) { return secret(i); }
int secret(int i) { return i * i; }
@Sander_Mak
Module Systems: C++20?
module mymodule;
export int sq(int i) { return secret(i); }
int secret(int i) { return i * i; }
#include <stdio.h>
import std.io
import mymodule
int main() {
printf("Two squared %d", sq(2));
return 0;
}
@Sander_Mak
Module Systems: C++20?
module mymodule;
export int sq(int i) { return secret(i); }
int secret(int i) { return i * i; }
#include <stdio.h>
import std.io
import mymodule
int main() {
printf("Two squared %d", sq(2));
return 0;
}
Strong
Encapsulation
@Sander_Mak
Module Systems: C++20?
module mymodule;
export int sq(int i) { return secret(i); }
int secret(int i) { return i * i; }
#include <stdio.h>
import std.io
import mymodule
int main() {
printf("Two squared %d", sq(2));
return 0;
}
Strong
Encapsulation
Well-Defined
Interfaces
@Sander_Mak
Module Systems: C++20?
module mymodule;
export int sq(int i) { return secret(i); }
int secret(int i) { return i * i; }
#include <stdio.h>
import std.io
import mymodule
int main() {
printf("Two squared %d", sq(2));
return 0;
}
Explicit
Dependencies
Strong
Encapsulation
Well-Defined
Interfaces
@Sander_Mak
So, Modules Everywhere!
@Sander_Mak
So, Modules Everywhere!
> Objects
< Applications
@Sander_Mak
users
app.users.User
app.users.UserInfo
app.users.internal.UserImpl
app.users.internal.Util;
assignments
...
...
courses
...
...
students
...
...
attendance
...
...
grading
...
...
learningmaterial
...
...
Not Just on the
Whiteboard
@Sander_Mak
users
app.users.User
app.users.UserInfo
app.users.internal.UserImpl
app.users.internal.Util;
assignments
...
...
courses
...
...
students
...
...
attendance
...
...
grading
...
...
learningmaterial
...
...
Not Just With
Discipline
@Sander_Mak
Modules or Microservices?
IT DEPENDS
@Sander_Mak
Manage Complexity
Scaling
Resilience
@Sander_Mak
Manage Complexity
Scaling
Resilience
@Sander_Mak
Manage Complexity
Scaling
Resilience
?
?
@Sander_Mak
Advantages of Modules
Ease of
Deployment &
Management
@Sander_Mak
Advantages of Modules
Ease of
Deployment &
Management
Modular Application
@Sander_Mak
Advantages of Modules
Strong but
Refactorable
Boundaries
@Sander_Mak
Advantages of Modules
Strong but
Refactorable
Boundaries
https://www.infoq.com/presentations/microservices-future
~1800 microservices
@Sander_Mak
Advantages of Modules
Strong but
Refactorable
Boundaries
"The [Linux] project is structured so
people can work independently,
Torvalds explained. "We've been
able to really modularize the code
and development model so we
can do a lot in parallel." - El Reg
@Sander_Mak
Advantages of Modules
Strongly typed,
In-Process
Communication
@Sander_Mak
Advantages of Modules
Strongly typed,
In-Process
Communication
No Serialization or Network Latency
@Sander_Mak
Advantages of Modules
Strongly typed,
In-Process
Communication
Ever Tried Serializing a Function?
@Sander_Mak
Advantages of Modules
Strongly typed,
In-Process
Communication
GraphQL or Protobuf > REST
@Sander_Mak
Advantages of Modules
Strongly typed,
In-Process
Communication
@Sander_Mak
Advantages of Modules
Strongly typed,
In-Process
*Synchronous*
Communication
@Sander_Mak
Advantages of Modules
Eventual
Consistency
is a Choice
@Sander_Mak
Advantages of Modules
Eventual
Consistency
is a Choice
It's Still a Good Idea to Partition Data
@Sander_Mak
Advantages of Microservices
Best Stack for Each Service
@Sander_Mak
Advantages of Microservices
Best Stack for Each Service
learningmaterial students assignments
(but is your org ready for this?)
@Sander_Mak
Advantages of Microservices
Independent Deployment
learningmaterial students assignmentsv2 v3 v1
@Sander_Mak
Advantages of Microservices
Independent Deployment
learningmaterial students assignmentsv2 v3 v1
(beware of deployment dependencies!)
@Sander_Mak
Advantages of Microservices
Independent Deployment
learningmaterial students assignmentsv2 v3 v1
Modularized App > Distributed Monolith
(beware of deployment dependencies!)
@Sander_Mak
Advantages of Microservices
Independent Failure
learningmaterial students assignments
@Sander_Mak
Advantages of Microservices
Independent Failure
learningmaterial students assignments
(when your services are truly autonomous...)
@Sander_Mak
Advantages of Microservices
Independent Scaling
assignments
learningmaterial
4x g2.2xlarge 2x t2.medium 1x t2.micro
students
@Sander_Mak
Advantages of Microservices
vs. Uniform Scaling
Modular Application
3x t2.large
@Sander_Mak
It's Time to Wrap Up
@Sander_Mak
@Sander_Mak
At the speed of light,
everything changes!
@Sander_Mak
At the speed of light,
everything changes!
Dude, chill. The apple still
doesn't fall far from the tree.
@Sander_Mak
Don't Solve Problems
You Don't Have
At the speed of light,
everything changes!
Dude, chill. The apple still
doesn't fall far from the tree.
@Sander_Mak
You Are (most likely) Not at
Uber or Netflix Scale
scale
organizations
@Sander_Mak
You Are (most likely) Not at
Uber or Netflix Scale
scale
organizations
@Sander_Mak
You Are (most likely) Not at
Uber or Netflix Scale
scale
organizations
the 80% of us
@Sander_Mak
Solve Problems You Do Have
In The Simplest Possible Way
@Sander_Mak
Solve Problems You Do Have
In The Simplest Possible Way
At Least Read Up on Modular Development
In Your Tech Stack of Choice
Explicit
Dependencies
Strong
Encapsulation
Well-Defined
Interfaces
@Sander_Mak
Design as Microservices,
Build as Modules
You Can Move to (Micro)services Later.
@Sander_Mak
Design as Microservices,
Build as Modules
You Can Move to (Micro)services Later.
Modules Enable

Larger Services!
@Sander_Mak
Design as Microservices,
Build as Modules
Don't worry, you can still do:
Reactive NoSQL Cloud DevOps DDD
@Sander_Mak
Messy Monolith
Microservices
All The Way
Modular
App
Features
Cost
Thanks. Read More:
bit.ly/modularapps
bit.ly/java9book
@Sander_Mak

More Related Content

What's hot

Drones and their Increasing Number of Applications
Drones and their Increasing Number of ApplicationsDrones and their Increasing Number of Applications
Drones and their Increasing Number of ApplicationsJeffrey Funk
 
UAV(unmanned aerial vehicle) and its application
UAV(unmanned aerial vehicle) and its application UAV(unmanned aerial vehicle) and its application
UAV(unmanned aerial vehicle) and its application Joy Karmakar
 
All about Office UI Fabric
All about Office UI FabricAll about Office UI Fabric
All about Office UI FabricFabio Franzini
 
Fido Technical Overview
Fido Technical OverviewFido Technical Overview
Fido Technical OverviewFIDO Alliance
 
Generic Vehicle Architecture – DDS at the Core.
Generic Vehicle Architecture – DDS at the Core.Generic Vehicle Architecture – DDS at the Core.
Generic Vehicle Architecture – DDS at the Core.Real-Time Innovations (RTI)
 
Drone Insights 2021, and its Impact on other sectors in India
Drone Insights 2021, and its Impact on other sectors in IndiaDrone Insights 2021, and its Impact on other sectors in India
Drone Insights 2021, and its Impact on other sectors in IndiaKaushik Biswas
 
What's new in API Connect and DataPower - 2019
What's new in API Connect and DataPower - 2019What's new in API Connect and DataPower - 2019
What's new in API Connect and DataPower - 2019IBM DataPower Gateway
 
UNMANNED AERIAL VEHICLE
UNMANNED AERIAL VEHICLEUNMANNED AERIAL VEHICLE
UNMANNED AERIAL VEHICLEThirumal Aero
 
Preparing for a future Microservices journey using DDD & Wardley Maps
Preparing for a future Microservices journey using DDD & Wardley MapsPreparing for a future Microservices journey using DDD & Wardley Maps
Preparing for a future Microservices journey using DDD & Wardley MapsSusanne Kaiser
 
drone technology
drone technologydrone technology
drone technologyUmesh Dadde
 
UAV (Unmanned Aerial Vehicle)
UAV (Unmanned Aerial Vehicle)UAV (Unmanned Aerial Vehicle)
UAV (Unmanned Aerial Vehicle)UDIT PATEL
 
Unmanned aerial vehicles
Unmanned aerial vehiclesUnmanned aerial vehicles
Unmanned aerial vehiclesShahnawaz Alam
 
Drones the future technology
Drones the future technologyDrones the future technology
Drones the future technologyvikram singh
 
Drone-Unmanned Aerial Vehicle
Drone-Unmanned Aerial VehicleDrone-Unmanned Aerial Vehicle
Drone-Unmanned Aerial Vehicleshivu1234
 
Microsoft Azure Fundamentals
Microsoft Azure FundamentalsMicrosoft Azure Fundamentals
Microsoft Azure FundamentalsAdwait Ullal
 

What's hot (20)

Drones and their Increasing Number of Applications
Drones and their Increasing Number of ApplicationsDrones and their Increasing Number of Applications
Drones and their Increasing Number of Applications
 
Flutter
FlutterFlutter
Flutter
 
Flutter
FlutterFlutter
Flutter
 
UAV(unmanned aerial vehicle) and its application
UAV(unmanned aerial vehicle) and its application UAV(unmanned aerial vehicle) and its application
UAV(unmanned aerial vehicle) and its application
 
All about Office UI Fabric
All about Office UI FabricAll about Office UI Fabric
All about Office UI Fabric
 
Fido Technical Overview
Fido Technical OverviewFido Technical Overview
Fido Technical Overview
 
Generic Vehicle Architecture – DDS at the Core.
Generic Vehicle Architecture – DDS at the Core.Generic Vehicle Architecture – DDS at the Core.
Generic Vehicle Architecture – DDS at the Core.
 
Drone Insights 2021, and its Impact on other sectors in India
Drone Insights 2021, and its Impact on other sectors in IndiaDrone Insights 2021, and its Impact on other sectors in India
Drone Insights 2021, and its Impact on other sectors in India
 
What's new in API Connect and DataPower - 2019
What's new in API Connect and DataPower - 2019What's new in API Connect and DataPower - 2019
What's new in API Connect and DataPower - 2019
 
UNMANNED AERIAL VEHICLE
UNMANNED AERIAL VEHICLEUNMANNED AERIAL VEHICLE
UNMANNED AERIAL VEHICLE
 
Flutter
FlutterFlutter
Flutter
 
Preparing for a future Microservices journey using DDD & Wardley Maps
Preparing for a future Microservices journey using DDD & Wardley MapsPreparing for a future Microservices journey using DDD & Wardley Maps
Preparing for a future Microservices journey using DDD & Wardley Maps
 
Introduction to kotlin
Introduction to kotlinIntroduction to kotlin
Introduction to kotlin
 
drone technology
drone technologydrone technology
drone technology
 
UAV (Unmanned Aerial Vehicle)
UAV (Unmanned Aerial Vehicle)UAV (Unmanned Aerial Vehicle)
UAV (Unmanned Aerial Vehicle)
 
Unmanned aerial vehicles
Unmanned aerial vehiclesUnmanned aerial vehicles
Unmanned aerial vehicles
 
Drones the future technology
Drones the future technologyDrones the future technology
Drones the future technology
 
Drone-Unmanned Aerial Vehicle
Drone-Unmanned Aerial VehicleDrone-Unmanned Aerial Vehicle
Drone-Unmanned Aerial Vehicle
 
Microsoft Azure Fundamentals
Microsoft Azure FundamentalsMicrosoft Azure Fundamentals
Microsoft Azure Fundamentals
 
Unmanned aerial vehicle
Unmanned aerial vehicleUnmanned aerial vehicle
Unmanned aerial vehicle
 

Similar to Modules or microservices?

Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)Patricia Aas
 
C# Tutorial MSM_Murach chapter-15-slides
C# Tutorial MSM_Murach chapter-15-slidesC# Tutorial MSM_Murach chapter-15-slides
C# Tutorial MSM_Murach chapter-15-slidesSami Mut
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEBenjamin Cabé
 
Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02Sven Ruppert
 
Mini project final presentation
Mini project final presentationMini project final presentation
Mini project final presentationGianlucaCapozzi1
 
Easy2park - A smarter way to find a parking lot
Easy2park - A smarter way to find a parking lotEasy2park - A smarter way to find a parking lot
Easy2park - A smarter way to find a parking lotDaniele Davoli
 
VLSI Training presentation
VLSI Training presentationVLSI Training presentation
VLSI Training presentationDaola Khungur
 
Seattle Cassandra Users: An OSS Java Abstraction Layer for Cassandra
Seattle Cassandra Users: An OSS Java Abstraction Layer for CassandraSeattle Cassandra Users: An OSS Java Abstraction Layer for Cassandra
Seattle Cassandra Users: An OSS Java Abstraction Layer for CassandraJosh Turner
 
Building maintainable app #droidconzg
Building maintainable app #droidconzgBuilding maintainable app #droidconzg
Building maintainable app #droidconzgKristijan Jurković
 
How To make your own Robot And control it using labview
How To make your own Robot And control it using labviewHow To make your own Robot And control it using labview
How To make your own Robot And control it using labviewAymen Lachkhem
 
Enterprise Extensions to Magnolia's Imaging
Enterprise Extensions to Magnolia's ImagingEnterprise Extensions to Magnolia's Imaging
Enterprise Extensions to Magnolia's Imagingbkraft
 
Secure Architecture and Programming 101
Secure Architecture and Programming 101Secure Architecture and Programming 101
Secure Architecture and Programming 101Mario-Leander Reimer
 
Secure Architecture and Programming 101
Secure Architecture and Programming 101Secure Architecture and Programming 101
Secure Architecture and Programming 101QAware GmbH
 
The new and smart way to build microservices - Eclipse MicroProfile
The new and smart way to build microservices - Eclipse MicroProfileThe new and smart way to build microservices - Eclipse MicroProfile
The new and smart way to build microservices - Eclipse MicroProfileEmily Jiang
 
ECMAScript.Next ECMAScipt 6
ECMAScript.Next ECMAScipt 6ECMAScript.Next ECMAScipt 6
ECMAScript.Next ECMAScipt 6Kevin DeRudder
 
OSGi CDI Integration Specification -- Raymond Augé, Liferay
OSGi CDI Integration Specification -- Raymond Augé, LiferayOSGi CDI Integration Specification -- Raymond Augé, Liferay
OSGi CDI Integration Specification -- Raymond Augé, LiferayOSGi Alliance
 

Similar to Modules or microservices? (20)

Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
 
C# Tutorial MSM_Murach chapter-15-slides
C# Tutorial MSM_Murach chapter-15-slidesC# Tutorial MSM_Murach chapter-15-slides
C# Tutorial MSM_Murach chapter-15-slides
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDE
 
Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02
 
Advanced modular development
Advanced modular development  Advanced modular development
Advanced modular development
 
Mini project final presentation
Mini project final presentationMini project final presentation
Mini project final presentation
 
Easy2park - A smarter way to find a parking lot
Easy2park - A smarter way to find a parking lotEasy2park - A smarter way to find a parking lot
Easy2park - A smarter way to find a parking lot
 
VLSI Training presentation
VLSI Training presentationVLSI Training presentation
VLSI Training presentation
 
Seattle Cassandra Users: An OSS Java Abstraction Layer for Cassandra
Seattle Cassandra Users: An OSS Java Abstraction Layer for CassandraSeattle Cassandra Users: An OSS Java Abstraction Layer for Cassandra
Seattle Cassandra Users: An OSS Java Abstraction Layer for Cassandra
 
Building maintainable app #droidconzg
Building maintainable app #droidconzgBuilding maintainable app #droidconzg
Building maintainable app #droidconzg
 
How To make your own Robot And control it using labview
How To make your own Robot And control it using labviewHow To make your own Robot And control it using labview
How To make your own Robot And control it using labview
 
Enterprise Extensions to Magnolia's Imaging
Enterprise Extensions to Magnolia's ImagingEnterprise Extensions to Magnolia's Imaging
Enterprise Extensions to Magnolia's Imaging
 
L04 Software Design Examples
L04 Software Design ExamplesL04 Software Design Examples
L04 Software Design Examples
 
Secure Architecture and Programming 101
Secure Architecture and Programming 101Secure Architecture and Programming 101
Secure Architecture and Programming 101
 
Secure Architecture and Programming 101
Secure Architecture and Programming 101Secure Architecture and Programming 101
Secure Architecture and Programming 101
 
The new and smart way to build microservices - Eclipse MicroProfile
The new and smart way to build microservices - Eclipse MicroProfileThe new and smart way to build microservices - Eclipse MicroProfile
The new and smart way to build microservices - Eclipse MicroProfile
 
Building maintainable app
Building maintainable appBuilding maintainable app
Building maintainable app
 
ECMAScript.Next ECMAScipt 6
ECMAScript.Next ECMAScipt 6ECMAScript.Next ECMAScipt 6
ECMAScript.Next ECMAScipt 6
 
Es.next
Es.nextEs.next
Es.next
 
OSGi CDI Integration Specification -- Raymond Augé, Liferay
OSGi CDI Integration Specification -- Raymond Augé, LiferayOSGi CDI Integration Specification -- Raymond Augé, Liferay
OSGi CDI Integration Specification -- Raymond Augé, Liferay
 

More from Sander Mak (@Sander_Mak)

TypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painTypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painSander Mak (@Sander_Mak)
 
The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)Sander Mak (@Sander_Mak)
 
Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?Sander Mak (@Sander_Mak)
 
Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)Sander Mak (@Sander_Mak)
 

More from Sander Mak (@Sander_Mak) (20)

Scalable Application Development @ Picnic
Scalable Application Development @ PicnicScalable Application Development @ Picnic
Scalable Application Development @ Picnic
 
Coding Your Way to Java 13
Coding Your Way to Java 13Coding Your Way to Java 13
Coding Your Way to Java 13
 
Coding Your Way to Java 12
Coding Your Way to Java 12Coding Your Way to Java 12
Coding Your Way to Java 12
 
Java Modularity: the Year After
Java Modularity: the Year AfterJava Modularity: the Year After
Java Modularity: the Year After
 
Desiging for Modularity with Java 9
Desiging for Modularity with Java 9Desiging for Modularity with Java 9
Desiging for Modularity with Java 9
 
Migrating to Java 9 Modules
Migrating to Java 9 ModulesMigrating to Java 9 Modules
Migrating to Java 9 Modules
 
Java 9 Modularity in Action
Java 9 Modularity in ActionJava 9 Modularity in Action
Java 9 Modularity in Action
 
Java modularity: life after Java 9
Java modularity: life after Java 9Java modularity: life after Java 9
Java modularity: life after Java 9
 
Provisioning the IoT
Provisioning the IoTProvisioning the IoT
Provisioning the IoT
 
Event-sourced architectures with Akka
Event-sourced architectures with AkkaEvent-sourced architectures with Akka
Event-sourced architectures with Akka
 
TypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painTypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the pain
 
The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)
 
Modular JavaScript
Modular JavaScriptModular JavaScript
Modular JavaScript
 
Modularity in the Cloud
Modularity in the CloudModularity in the Cloud
Modularity in the Cloud
 
Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?
 
Scala & Lift (JEEConf 2012)
Scala & Lift (JEEConf 2012)Scala & Lift (JEEConf 2012)
Scala & Lift (JEEConf 2012)
 
Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)
 
Akka (BeJUG)
Akka (BeJUG)Akka (BeJUG)
Akka (BeJUG)
 
Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)
 
Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!
 

Recently uploaded

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Recently uploaded (20)

Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

Modules or microservices?