SlideShare a Scribd company logo
How to build a scalable
SNS using HBase
Kewang
三竹資訊
Who I am
●
王慕羣
● Java / Node.js / AngularJS
● SQL-like / HBase
Github: kewang
Facebook: kewangtw
Linkedin: kewangtw
Slideshare: kewang
Mail: cpckewang@gmail.com
Who Mitake is
三竹資訊
Who Mitake is
三竹資訊
大家都唸 Mitake
Who Mitake is
三竹資訊
大家都唸 Mitake ,但我們公司都唸 Mitake
Who Mitake is
三竹資訊
Mitake 不唸作 MiTAC 啊!!!
Who Mitake is
三竹資訊
Who Mitake is
三竹資訊
●
簡訊平台
Who Mitake is
三竹資訊
●
簡訊平台
●
行動下單:
Who Mitake is
三竹資訊
●
簡訊平台
●
行動下單:
Who Mitake is
三竹資訊
●
簡訊平台
●
行動下單:不計其數
Who Mitake is
三竹資訊
●
簡訊平台
●
行動下單:不計其數
●
行動銀行:
Who Mitake is
三竹資訊
●
簡訊平台
●
行動下單:不計其數
●
行動銀行:臺銀、土銀、富邦、台新、聯邦、臺
企銀、遠銀、華南、澳盛、郵局、合庫、渣打 ...
等 18 家
Who Mitake is
三竹資訊
●
簡訊平台
●
行動下單:不計其數
●
行動銀行:臺銀、土銀、富邦、台新、聯邦、臺
企銀、遠銀、華南、澳盛、郵局、合庫、渣打 ...
等 18 家
●
產壽險:
Who Mitake is
三竹資訊
●
簡訊平台
●
行動下單:不計其數
●
行動銀行:臺銀、土銀、富邦、台新、聯邦、臺企
銀、遠銀、華南、澳盛、郵局、合庫、渣打 ... 等 18
家
● 產壽險:全球、明台、新光、新安東京、富邦 ... 等
Who Mitake is
三竹資訊
●
簡訊平台
●
行動下單:不計其數
●
行動銀行:臺銀、土銀、富邦、台新、聯邦、臺企
銀、遠銀、華南、澳盛、郵局、合庫、渣打 ... 等 18 家
● 產壽險:全球、明台、新光、新安東京、富邦 ... 等
●
其他:
Who Mitake is
三竹資訊
●
簡訊平台
●
行動下單:不計其數
●
行動銀行:臺銀、土銀、富邦、台新、聯邦、臺企銀、
遠銀、華南、澳盛、郵局、合庫、渣打 ... 等 18 家
● 產壽險:全球、明台、新光、新安東京、富邦 ... 等
● 其他: udn 買東西、手機逛週年慶、財政園地、證交
所、綜所稅申報 ... 等
System Architecture
19
System Architecture
20
System Architecture (Backend)
21
System Architecture (Frontend)
22
System Architecture (Frontend)
MOPCON 2014 CfP
23
Agenda
● Rowkey design
● Best Practice in Java
● API Blueprint
● HBase Dataflow
24
Rowkey design
25
Rowkey design - Avoid hotspotting
26
Rowkey design - Avoid hotspotting
● Sorted lexicographically
27
Rowkey design - Avoid hotspotting
● Sorted lexicographically
Region 3
Region 1
Region 2
foo-1
foo-2
foo-3
foo-4
28
Rowkey design - Avoid hotspotting
● Sorted lexicographically
Region 3
Region 1
Region 2
foo-1
foo-2
foo-3
foo-4
29
Rowkey design - Avoid hotspotting
● Sorted lexicographically
Region 3
Region 1
Region 2
foo-1
foo-2
foo-3
foo-4
30
Rowkey design - Avoid hotspotting
● Salting, Hashing or Reversing
31
Rowkey design - Avoid hotspotting
● Salting, Hashing or Reversing
Region 3
Region 1
Region 2
foo-1
foo-2
foo-3
foo-4
32
Rowkey design - Avoid hotspotting
● Salting, Hashing or Reversing
Region 3
Region 1
Region 2
foo-1
foo-2
foo-3
foo-4
BOX
33
Rowkey design - Avoid hotspotting
● Salting, Hashing or Reversing
Region 3
Region 1
Region 2
foo-1
foo-2
foo-3
foo-4
BOX
34
Rowkey design - Avoid hotspotting
● Salting, Hashing or Reversing
Region 3
Region 1
Region 2
foo-1
foo-2
foo-3
foo-4
BOX
a-foo-1
35
Rowkey design - Avoid hotspotting
● Salting, Hashing or Reversing
Region 3
Region 1
Region 2
foo-1
foo-2
foo-3
foo-4
BOX
a-foo-1
b-foo-2
c-foo-3
d-foo-4
36
Rowkey design - Refining ID
37
Rowkey design - Refining ID
● SHA1: 40 bytes
– 3204c3aefcca4a556f0f7547d056235fa823af3a
38
Rowkey design - Refining ID
● SHA1: 40 bytes
– 3204c3aefcca4a556f0f7547d056235fa823af3a
● UUID: 36 bytes
– 22bfad60-39d2-11e4-916c-0800200c9a66
39
Rowkey design - Refining ID
● SHA1: 40 bytes
– 3204c3aefcca4a556f0f7547d056235fa823af3a
● UUID: 36 bytes
– 22bfad60-39d2-11e4-916c-0800200c9a66
● MD5: 32 bytes
– 27734b3f4f98e709f58c6ddb0193164e
Too long !!!
41
Rowkey design - Refining ID
● X Algorithm
42
Rowkey design - Refining ID
● X Algorithm: 12 bytes
43
Rowkey design - Refining ID
● X Algorithm: 12 bytes
– Auto increment
44
Rowkey design - Refining ID
● X Algorithm: 12 bytes
– Auto increment
– Ordered
45
Rowkey design - Refining ID
● X Algorithm: 12 bytes
– Auto increment
– Ordered
– Counts to 2.17E21
Rowkey design - Refining ID
● X Algorithm: 12 bytes
– Auto increment
– Ordered
– Counts to 2.17E21
– e.g: H00000001B12
47
Rowkey design - Authenticating
48
Rowkey design - Authenticating
● Get frequently
49
Rowkey design - Authenticating
● Get frequently
User Id ID0000001A3B
Access Token d66e3b70-3666-11e4-8c21-0800200c9a66
Expired Time 1410077636
50
Rowkey design - Authenticating
● Get frequently
● Multi-login
51
Rowkey design - Authenticating
● Get frequently
● Multi-login
User Id ID0000001A3B
Token 0 d66e3b70-3666-11e4-8c21-0800200c9a66+1410077636+Device1
Token 1 92e84bf9-7852-492d-b56a-13ba7acb8fb5+1410123456+Device2
52
Rowkey design - Rice dumpling
53
Rowkey design - Rice dumpling
54
Rowkey design - Rice dumpling
55
Rowkey design - Rice dumpling
Id ME00000024AC
Title Announce
Content We are hiring
56
Rowkey design - Rice dumpling
Id ME00000024AC
Title Announce
Content We are hiring
Id ME00000024AC.ME00000037ZZ
Title (n/a)
Content I want to join your team !!!
57
Rowkey design - Rice dumpling
Id ME00000024AC
Title Announce
Content We are hiring
Id ME00000024AC.ME00000037ZZ
Title (n/a)
Content I want to join your team !!!
58
Rowkey design - Access controlling
59
Rowkey design - Access controlling
60
Rowkey design - Access controlling
Only A, B can see it.
61
Rowkey design - Access controlling
Only A, B can see it.
Of course, including me.
62
Rowkey design - Access controlling
● When post a message (Write)
63
Rowkey design - Access controlling
● When post a message (Write)
– Generate ACL Id
64
Rowkey design - Access controlling
● When post a message (Write)
– Generate ACL Id
– Put ACL Id to message, and reader's ACLs
65
Rowkey design - Access controlling
● When post a message (Write)
– Generate ACL Id
– Put ACL Id to message, and reader's ACLs
● When read my messages (Read)
66
Rowkey design - Access controlling
● When post a message (Write)
– Generate ACL Id
– Put ACL Id to message, and reader's ACLs
● When read my messages (Read)
– Scan my ACLs, and all messages
67
Rowkey design - Access controlling
● When post a message (Write)
– Generate ACL Id
– Put ACL Id to message, and reader's ACLs
● When read my messages (Read)
– Scan my ACLs, and all messages
– If my ACLs contains message's ACL Id, can SHOW it
68
Rowkey design - Access controlling
Write
69
Rowkey design - Access controlling
ACL hash hash(A, B, K)+C+R
ACL Id AI0070AD
Write
70
Rowkey design - Access controlling
ACL hash hash(A, B, K)+C+R
ACL Id AI0070AD
Message Id ME00000024AC
Title Announce
Content We are hiring
ACL Id AI0070AD
Write
71
Rowkey design - Access controlling
ACL Id+User Id AI0070AD+A AI0070AD+B AI0070AD+K
Create 1 1 1
Read 1 1 1
Update 0 0 0
Delete 0 0 0
Write
72
Rowkey design - Access controlling
User Id+ACL Id A+AI0070AD B+AI0070AD K+AI0070AD
Create 1 1 1
Read 1 1 1
Update 0 0 0
Delete 0 0 0
ACL Id+User Id AI0070AD+A AI0070AD+B AI0070AD+K
Create 1 1 1
Read 1 1 1
Update 0 0 0
Delete 0 0 0
Write
73
Rowkey design - Access controlling
Read
74
Rowkey design - Access controlling
User Id+ACL Id K+AI0070AD K+AI028577
Create 1 1
Read 1 1
Update 0 1
Delete 0 1
Read
75
Rowkey design - Access controlling
User Id+ACL Id K+AI0070AD K+A1028577
Create 1 1
Read 1 1
Update 0 1
Delete 0 1
Read
Message Id ME00000024AC
Title Announce
Content We are hiring
ACL Id AI0070AD
76
Rowkey design - Access controlling
User Id+ACL Id K+AI0070AD K+A1028577
Create 1 1
Read 1 1
Update 0 1
Delete 0 1
Read
Message Id ME00000024AC
Title Announce
Content We are hiring
ACL Id AI0070AD
77
Rowkey design - Statistics
78
Rowkey design - Statistics
● Variety of types
– e.g., Likes, Comments, Registrations
79
Rowkey design - Statistics
● Variety of types
– e.g., Likes, Comments, Registrations
● By unit
– i.e., hourly,daily,weekly,monthly,yearly
80
Rowkey design - Statistics
● Variety of types
– e.g., Likes, Comments, Registrations
● By unit
– i.e., hourly,daily,weekly,monthly,yearly
● By user
81
Rowkey design - Statistics
Unit+Time Base+User Id+Type H+20140908+AAA+Like
11 7
15 22
21 15
Unit+Time Base+User Id+Type D+201409+AAA+Like
08 44
11 58
82
Rowkey design - Statistics
● Sum counts from 2014/9/7 to 2014/9/20 group by
user or counting type
Unit+Time Base+User Id+Type D+201409+AAA+Like
02 20
08 52
09 41
... ...
20 55
83
Rowkey design - Statistics
● Sum counts from 2014/9/7 to 2014/9/20 group by
user or counting type
Unit+Time Base+User Id+Type D+201409+AAA+Like
02 20
08 52
09 41
... ...
20 55
84
Rowkey design - Statistics
● Sum AAA's counts from 2014/9/7 to 2014/9/20
group by counting type
Unit+Time Base+User Id+Type D+201409+AAA+Like
02 20
08 52
09 41
... ...
20 55
85
Rowkey design - Statistics
● Sum AAA's like counts from 2014/9/7 to 2014/9/20
Unit+Time Base+User Id+Type D+201409+AAA+Like
02 20
08 52
09 41
... ...
20 55
86
Rowkey design - Summary
● Avoid hotspotting
● Refining ID
● Authenticating
● Rice dumpling
● Access controlling
● Statistics
87
Best Practice in Java
88
No. 1
89
No. 1
USE HashMap
90
No. 1
USE HashMap
NoSQL is different from RDBMS
91
No. 1 USE HashMap
OLD
92
No. 1 USE HashMap
public class Validation1 {
private String accessToken;
private long expiredTime;
public Validation1() {
accessToken = null;
expiredTime = -1;
}
public String getAccessToken() {
return accessToken;
}
public void setAccessToken(String accessToken) {
this.accessToken = accessToken;
}
public long getExpiredTime() {
return expiredTime;
}
public void setExpiredTime(long expiredTime) {
this.expiredTime = expiredTime;
}
}
OLD
93
No. 1 USE HashMap
NEW
94
No. 1 USE HashMap
public static final String ACCESS_TOKEN = "access token";
private Map<String, byte[]> putMap;
public Validation1() {
super();
}
public Validation1(Result result) {
super(result);
}
public String getAccessToken() {
return Bytes.toString(putMap.get(ACCESS_TOKEN));
}
public void setAccessToken(String accessToken) {
putMap.put(ACCESS_TOKEN, Bytes.toBytes(accessToken));
}
NEW
95
No. 1 USE HashMap
public static final String ACCESS_TOKEN = "access token";
private Map<String, byte[]> putMap;
public Validation1() {
super();
}
public Validation1(Result result) {
super(result);
}
public String getAccessToken() {
return Bytes.toString(putMap.get(ACCESS_TOKEN));
}
public void setAccessToken(String accessToken) {
putMap.put(ACCESS_TOKEN, Bytes.toBytes(accessToken));
}
NEW
96
No. 1 USE HashMap
● Bytes.toXXX() returns always Type XXX or NULL
97
No. 1 USE HashMap
● Bytes.toXXX() returns always Type XXX or NULL
– Or throws Exception
No. 1 USE HashMap
● Bytes.toXXX() returns always Type XXX or NULL
– Or throws Exception
● Improve default value in Java
99
No. 2
100
No. 2
ONE table, MULTI domains
101
No. 2
ONE table, MULTI domains
NoSQL is different from RDBMS
102
No. 2 ONE table, MULTI domains
● In RDBMS
–
–
–
● In NoSQL
–
–
–
103
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
–
–
–
● In NoSQL
–
–
–
104
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
–
–
–
● In NoSQL (at runtime)
–
–
–
105
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
–
–
● In NoSQL (at runtime)
–
–
–
106
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
–
–
● In NoSQL (at runtime)
– Rowkey always changes
–
–
107
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
– Schema is fixed
–
● In NoSQL (at runtime)
– Rowkey always changes
–
–
108
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
– Schema is fixed
–
● In NoSQL (at runtime)
– Rowkey always changes
– Schema always changes
–
109
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
– Schema is fixed
– DAO serves one domain
● In NoSQL (at runtime)
– Rowkey always changes
– Schema always changes
–
110
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
– Schema is fixed
– DAO serves one domain
● In NoSQL (at runtime)
– Rowkey always changes
– Schema always changes
– DAO serves many domains
111
No. 2 ONE table, MULTI domains
User Id ID0000001A3B
Access Token d66e3b70-3666-11e4-8c21-0800200c9a66
Expired Time 1410077636
112
No. 2 ONE table, MULTI domains
User Id ID0000001A3B
Access Token d66e3b70-3666-11e4-8c21-0800200c9a66
Expired Time 1410077636
User Id+ACL Id ID0000001A3B+AI0070AD
Create 1
Read 1
Update 0
Delete 0
113
No. 2 ONE table, MULTI domains
User Id ID0000001A3B
Access Token d66e3b70-3666-11e4-8c21-0800200c9a66
Expired Time 1410077636
User Id+ACL Id ID0000001A3B+AI0070AD
Create 1
Read 1
Update 0
Delete 0
114
No. 2 ONE table, MULTI domains
● A DAO maps to a domain in RDBMS
115
No. 2 ONE table, MULTI domains
● A DAO maps to a domain in RDBMS
DB DAO Domain A
116
No. 2 ONE table, MULTI domains
● A DAO maps to multiple domains in NoSQL
117
No. 2 ONE table, MULTI domains
● A DAO maps to multiple domains in NoSQL
DB DAO
Domain A1
Domain A2
Domain A3
118
No. 2 ONE table, MULTI domains
● A DAO maps to multiple domains in NoSQL
● Build a middle layer to translate multiple domains
DB DAO
Domain A1
Domain A2
Domain A3
119
No. 2 ONE table, MULTI domains
● A DAO maps to multiple domains in NoSQL
● Build a middle layer to translate multiple domains
DB DAO
Domain A1
Domain A2
Domain A3
Schema
120
No. 2 ONE table, MULTI domains
● A DAO maps to multiple domains in NoSQL
● Build a middle layer to translate multiple domains
DB DAO
Domain A1
Domain A2
Domain A3
Schema
121
No. 2 ONE table, MULTI domains
private String checkDomainType(Result result) {
if (result.isEmpty()) {
return null;
} else {
String rowkey = Bytes.toString(result.getRow());
String[] splitKey = rowkey.split(DIVIDER);
if (splitKey.length == 1) {
}
}
}
122
No. 2 ONE table, MULTI domains
private String checkDomainType(Result result) {
if (result.isEmpty()) {
return null;
} else {
String rowkey = Bytes.toString(result.getRow());
String[] splitKey = rowkey.split(DIVIDER);
if (splitKey.length == 1) {
return DOMAIN_TYPE_VALIDATION1;
}
}
}
123
No. 2 ONE table, MULTI domains
private String checkDomainType(Result result) {
if (result.isEmpty()) {
return null;
} else {
String rowkey = Bytes.toString(result.getRow());
String[] splitKey = rowkey.split(DIVIDER);
if (splitKey.length == 1) {
return DOMAIN_TYPE_VALIDATION1;
} else if (splitKey.length == 2) {
return DOMAIN_TYPE_VALIDATION2;
}
}
}
124
No. 2 ONE table, MULTI domains
private String checkDomainType(Result result) {
if (result.isEmpty()) {
return null;
} else {
String rowkey = Bytes.toString(result.getRow());
String[] splitKey = rowkey.split(DIVIDER);
if (splitKey.length == 1) {
return DOMAIN_TYPE_VALIDATION1;
} else if (splitKey.length == 2) {
return DOMAIN_TYPE_VALIDATION2;
} else {
return DOMAIN_TYPE_VALIDATION3;
}
}
}
125
No. 2 ONE table, MULTI domains
private String checkDomainType(Result result) {
if (result.isEmpty()) {
return null;
} else {
String rowkey = Bytes.toString(result.getRow());
String[] splitKey = rowkey.split(DIVIDER);
if (splitKey.length == 1) {
return DOMAIN_TYPE_VALIDATION1;
} else if (splitKey.length == 2) {
return DOMAIN_TYPE_VALIDATION2;
} else {
return DOMAIN_TYPE_VALIDATION3;
}
}
}
Customize
126
No. 3
127
No. 3
NoSQL is different from RDBMS
128
No. 3
NoSQL is different from RDBMS
REALLY !!!
129
API Blueprint
130
131
API Blueprint - Introduction
132
API Blueprint - Introduction
● Web API Language
133
API Blueprint - Introduction
● Web API Language
● Pure Markdown
134
API Blueprint - Introduction
● Web API Language
● Pure Markdown
● Design for Humans
135
API Blueprint - Introduction
● Web API Language
● Pure Markdown
● Design for Humans
● Understandable by Machines
136
API Blueprint - Introduction
● Web API Language
● Pure Markdown
● Design for Humans
● Understandable by Machines
● Powerful Tooling
137
API Blueprint - Introduction
● Web API Language
● Pure Markdown
● Design for Humans
● Understandable by Machines
● Powerful Tooling
● Easy Lifecycle
138
API Blueprint - Hello World
139
API Blueprint - Hello World
140
API Blueprint - Complex
141
API Blueprint - Complex
142
HBase dataflow
143
HBase dataflow
conserve your domain know-how
144
HBase dataflow - Solve what ?
145
HBase dataflow - Solve what ?
● How to conserve system know-how about Put, Get,
Scan or other operations in HBase ?
146
Paper & Pen ?
147
Paper & Pen ?
148
Redmine / KM ?
149
Redmine / KM ?
150http://kewangtw.github.io/hbase-dataflow/
151
HBase dataflow - introduction
152
HBase dataflow - introduction
● HBase operation - Put, Delete, Get, Scan, Filters
153
HBase dataflow - introduction
● HBase operation - Put, Delete, Get, Scan, Filters
● Export
154
HBase dataflow - introduction
● HBase operation - Put, Delete, Get, Scan, Filters
● Export
– to JSON / Markdown
155
HBase dataflow - introduction
● HBase operation - Put, Delete, Get, Scan, Filters
● Export
– to JSON / Markdown
– to PNG / PDF
156
HBase dataflow - introduction
● HBase operation - Put, Delete, Get, Scan, Filters
● Export
– to JSON / Markdown
– to PNG / PDF
● Import from JSON
157
HBase dataflow - introduction
● HBase operation - Put, Delete, Get, Scan, Filters
● Export
– to JSON / Markdown
– to PNG / PDF
● Import from JSON
● Write title & summary
158
HBase dataflow - introduction
● HBase operation - Put, Delete, Get, Scan, Filters
● Export
– to JSON / Markdown
– to PNG / PDF
● Import from JSON
● Write title & summary
● Open source
159
Live DEMO
160
Design API Step by Step
161
Design API Step by Step
1.Paper & pen always are your friends
162
Design API Step by Step
1.Paper & pen always are your friends
2.Use HBase dataflow to simulate data's flow
163
Design API Step by Step
1.Paper & pen always are your friends
2.Use HBase dataflow to simulate data's flow
3.Export it
164
165
References
● HBase in Action
● apiblueprint, aglio
● HBase dataflow
166
167

More Related Content

Similar to How to build a scalable SNS using HBase

The slower the stronger a story of password hash migration
The slower the stronger  a story of password hash migrationThe slower the stronger  a story of password hash migration
The slower the stronger a story of password hash migration
OWASP
 
PayPal Real Time Analytics
PayPal  Real Time AnalyticsPayPal  Real Time Analytics
PayPal Real Time Analytics
Anil Madan
 
A Glide, Skip or a Jump: Efficiently Stream Data into Your Medallion Architec...
A Glide, Skip or a Jump: Efficiently Stream Data into Your Medallion Architec...A Glide, Skip or a Jump: Efficiently Stream Data into Your Medallion Architec...
A Glide, Skip or a Jump: Efficiently Stream Data into Your Medallion Architec...
HostedbyConfluent
 
Coding a SaaS
Coding a SaaSCoding a SaaS
Coding a SaaS
Chris on Code
 
Web前端性能优化 2014
Web前端性能优化 2014Web前端性能优化 2014
Web前端性能优化 2014
Yubei Li
 
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBIntroducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
MongoDB
 
Compliance Superpowers - Ben Blair, Chicago
Compliance Superpowers - Ben Blair, ChicagoCompliance Superpowers - Ben Blair, Chicago
Compliance Superpowers - Ben Blair, Chicago
AWS Chicago
 
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
Fwdays
 
[MongoDB.local Bengaluru 2018] Keynote
[MongoDB.local Bengaluru 2018] Keynote[MongoDB.local Bengaluru 2018] Keynote
[MongoDB.local Bengaluru 2018] Keynote
MongoDB
 
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...it-people
 
Learn to use Stratio Crossdata
Learn to use Stratio CrossdataLearn to use Stratio Crossdata
Learn to use Stratio Crossdata
Álvaro Agea Herradón
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
Wim Godden
 
When it all GOes right
When it all GOes rightWhen it all GOes right
When it all GOes right
Pavlo Golub
 
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
Ontico
 
3452 - Managing your applications
3452 - Managing your applications3452 - Managing your applications
3452 - Managing your applications
Timothy McCormick
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the code
Wim Godden
 
Beyond CSS Architecture
Beyond CSS ArchitectureBeyond CSS Architecture
Beyond CSS Architecture
拓樹 谷
 
Apache Pinot Meetup Sept02, 2020
Apache Pinot Meetup Sept02, 2020Apache Pinot Meetup Sept02, 2020
Apache Pinot Meetup Sept02, 2020
Mayank Shrivastava
 
Probo.ci Drupal 4 Gov Devops 1/2 day Presentation
Probo.ci Drupal 4 Gov Devops 1/2 day Presentation Probo.ci Drupal 4 Gov Devops 1/2 day Presentation
Probo.ci Drupal 4 Gov Devops 1/2 day Presentation
Zivtech, LLC
 

Similar to How to build a scalable SNS using HBase (20)

The slower the stronger a story of password hash migration
The slower the stronger  a story of password hash migrationThe slower the stronger  a story of password hash migration
The slower the stronger a story of password hash migration
 
PayPal Real Time Analytics
PayPal  Real Time AnalyticsPayPal  Real Time Analytics
PayPal Real Time Analytics
 
A Glide, Skip or a Jump: Efficiently Stream Data into Your Medallion Architec...
A Glide, Skip or a Jump: Efficiently Stream Data into Your Medallion Architec...A Glide, Skip or a Jump: Efficiently Stream Data into Your Medallion Architec...
A Glide, Skip or a Jump: Efficiently Stream Data into Your Medallion Architec...
 
Coding a SaaS
Coding a SaaSCoding a SaaS
Coding a SaaS
 
Web前端性能优化 2014
Web前端性能优化 2014Web前端性能优化 2014
Web前端性能优化 2014
 
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBIntroducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
 
Compliance Superpowers - Ben Blair, Chicago
Compliance Superpowers - Ben Blair, ChicagoCompliance Superpowers - Ben Blair, Chicago
Compliance Superpowers - Ben Blair, Chicago
 
ql.io at NodePDX
ql.io at NodePDXql.io at NodePDX
ql.io at NodePDX
 
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
 
[MongoDB.local Bengaluru 2018] Keynote
[MongoDB.local Bengaluru 2018] Keynote[MongoDB.local Bengaluru 2018] Keynote
[MongoDB.local Bengaluru 2018] Keynote
 
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...
 
Learn to use Stratio Crossdata
Learn to use Stratio CrossdataLearn to use Stratio Crossdata
Learn to use Stratio Crossdata
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
When it all GOes right
When it all GOes rightWhen it all GOes right
When it all GOes right
 
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
 
3452 - Managing your applications
3452 - Managing your applications3452 - Managing your applications
3452 - Managing your applications
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the code
 
Beyond CSS Architecture
Beyond CSS ArchitectureBeyond CSS Architecture
Beyond CSS Architecture
 
Apache Pinot Meetup Sept02, 2020
Apache Pinot Meetup Sept02, 2020Apache Pinot Meetup Sept02, 2020
Apache Pinot Meetup Sept02, 2020
 
Probo.ci Drupal 4 Gov Devops 1/2 day Presentation
Probo.ci Drupal 4 Gov Devops 1/2 day Presentation Probo.ci Drupal 4 Gov Devops 1/2 day Presentation
Probo.ci Drupal 4 Gov Devops 1/2 day Presentation
 

More from Mu Chun Wang

如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進
Mu Chun Wang
 
深入淺出 autocomplete
深入淺出 autocomplete深入淺出 autocomplete
深入淺出 autocomplete
Mu Chun Wang
 
你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事
Mu Chun Wang
 
網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體
Mu Chun Wang
 
老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統
Mu Chun Wang
 
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
Mu Chun Wang
 
Funliday 新創生活甘苦談
Funliday 新創生活甘苦談Funliday 新創生活甘苦談
Funliday 新創生活甘苦談
Mu Chun Wang
 
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
Mu Chun Wang
 
如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件
Mu Chun Wang
 
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
Mu Chun Wang
 
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
Mu Chun Wang
 
Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?
Mu Chun Wang
 
Git 可以做到的事
Git 可以做到的事Git 可以做到的事
Git 可以做到的事
Mu Chun Wang
 
那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-Control那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-Control
Mu Chun Wang
 
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
Mu Chun Wang
 
如何與全世界分享你的 Library
如何與全世界分享你的 Library如何與全世界分享你的 Library
如何與全世界分享你的 Library
Mu Chun Wang
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
Mu Chun Wang
 
API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一
Mu Chun Wang
 
Git 經驗分享
Git 經驗分享Git 經驗分享
Git 經驗分享
Mu Chun Wang
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務
Mu Chun Wang
 

More from Mu Chun Wang (20)

如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進
 
深入淺出 autocomplete
深入淺出 autocomplete深入淺出 autocomplete
深入淺出 autocomplete
 
你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事
 
網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體
 
老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統
 
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
 
Funliday 新創生活甘苦談
Funliday 新創生活甘苦談Funliday 新創生活甘苦談
Funliday 新創生活甘苦談
 
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
 
如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件
 
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
 
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
 
Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?
 
Git 可以做到的事
Git 可以做到的事Git 可以做到的事
Git 可以做到的事
 
那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-Control那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-Control
 
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
 
如何與全世界分享你的 Library
如何與全世界分享你的 Library如何與全世界分享你的 Library
如何與全世界分享你的 Library
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
 
API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一
 
Git 經驗分享
Git 經驗分享Git 經驗分享
Git 經驗分享
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務
 

Recently uploaded

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 

Recently uploaded (20)

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 

How to build a scalable SNS using HBase