BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Presentations All Your API Are Belong to Us

All Your API Are Belong to Us

Bookmarks
54:32

Summary

Paul Hill presents a case study of building an API with a short deadline using Node.js, WebSocket, MongoDB, JSON, Promises, Swagger, Memcached, Varnish and Hypermedia ReST.

Bio

Paul Hill is a software architect, designer and developer at KIXEYE, and resident expert on all things ReST and Hypermedia. An enterprise Java developer for most of his career he is now very much a polyglot paratrooper, spending most of his time designing and building APIs with Node.js to provide delightful features to KIXEYE's online competitive gaming community.

About the conference

Software is Changing the World. QCon empowers software development by facilitating the spread of knowledge and innovation in the developer community. A practitioner-driven conference, QCon is designed for technical team leads, architects, engineering directors, and project managers who influence innovation in their teams.

Recorded at:

Jul 27, 2014

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Appreciate the Candor

    by Faisal Waris,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Nice to hear the full story (good, bad and all).

    In terms of "backpressure" it was mentioned that NodeJS threads block on I/O. Is this correct? If so that is not a scalable design. On Windows / .Net one can use event-driven IO where the thread is assigned from a thread pool upon completion of IO activity.

    One can even use async database calls to SQL Server by using "Asynchronous Processing=true" in the connection string.

  • RabbitMQ

    by Rudi Starcevic,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Great talk - many interesting suggestions, ideas and concepts.

    I'm wondering if you use message queuing much? Eg: RabbitMQ.

  • Re: Appreciate the Candor

    by Paul Hill,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Wow just noticed there are comments on this site, never got an email, sorry for the late response :-)

    So yeah, Node uses non blocking IO. The back pressure I was referring to (and it's kind-of a corruption of the phrase) comes from non blocking responses that take much longer than expected to complete. This is ok for a little while but those callbacks eventually stack up and things go pear shaped.

    :-)

  • Re: RabbitMQ

    by Paul Hill,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Sorry I just noticed there are comments on this site :-)
    Better late than never.

    Yes we use queues (incl. RabbitMQ) extensively, but for the kind of volume we see in our API those would conk out just as quickly as Node.js if messages weren't consumed fast enough.

    :-)

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT