used by LINE users • Many corporation's official account provides sticker for free • Million followers • 00:00 at January 1st • People usually buy and reply happy new year sticker when they receive from friend • 5 times larger than usual • Trending stickers by TV show • Especially requests are easily to be amplified in microservices architecture
data and user ownership data • More than 100 million users related records. • At first we use in-house sharding library for MySQL • Recently we use sharding in MongoDB for most case
Nifty Thrift client/server • Spring web and Spark web framework • Logics are usually implemented in synchronous way • After • Armeria • All blocking code change to asynchronous way
don’t scale • Sending/Processing requests 1 by 1 • Max concurrent requests less than max threads • Inefficient cpu usage • Fast and priority requests blocked by others
latency • Non-blocking Event Loop + async task • Encourage us to write concurrent async calls • Less resource usage • From thread per request to event loop • CPU, memory by less threads • Less tcp connections • Armeria supports HTTP/2
2 • Guava only has transform/transformAsync • When logic become bigger, dagger graph is not easy to read • RxJava has many operators • zip, retry, filter, etc.
slack/LINE/mail depends on the urgency • 1st/2nd responder need to check the metrics and decide to rollback/throttling • Create Outage report(postmortem) for future enhancement
services and apps • Camera, Games, Music …etc • Different team/project may use different stacks/tools • Backend services are usually written in Java • Monitoring/Provisioning/Data Processing