api design – Rest API best alternative to polling for long asynchronous tasks

I created a flas restplus API that accepts the input xlsx file and returns an XML. It would be consumed internally by our different APIs

The current flow:

  1. Users POST an xlsx file by calling / downloading the endpoint.

  2. The API accepts the file, stores it, and returns a file identifier.

  3. User sends another request to / executes providing file ID for processing

  4. The API places the request in the rabbitMQ queue and returns 202 with a location URL to query the status.

  5. a celery worker collects the request and begins processing it. It takes a while.

  6. Meanwhile, the user can query the status

  7. When finished, the API sends 303, along with another location URL to download the file.

  8. The user hits the new URL to download the file.

However, our team of architects is not in favor of giving the client a questioning mechanism and asking us to take another approach, maybe a callback URL.
They have a say – "wait with sleep to check if the task is finished, is not good programming practice."

I would like to know if there is a different approach that the client can take without having to query the status. The booster is the one I know of, but it's not in place yet.

Use of proportions for responsive design breakpoints

It seems very problematic to me. Adapting to the width of a device is much more useful than adapting to its image format. In most cases, you wouldn't want the same layout on a 4-inch (diagonal) device as a 10-inch device, even if they have the same aspect ratio.

Another problematic problem here is that, when it comes to text on the web, it is too difficult to control the vertical sizing. It's easy to specify width metrics like 40em, but you have very little control over the height of a text block because you don't know how much over the font height (unless you apply a font size specific, which is a very bad practice – you must allow visually impaired people, like me, to use their preferred font size defined in browser settings). It is simply the nature of the text flowing horizontally: you can specify the width but not the height.

But don't let me discourage you from experimenting. As Benny said, "Explore, experiment, implement and test."!

Is there a design template for drop-down lists in iOS?

Even though Apple has recommended (and surprisingly still recommends) selectors for drop-down lists, they don't even use it anymore. spoilers:

enter description of image here

enter description of image here

In either case, "logic" would dictate using a drop-down menu + selector. Apple has chosen a much better solution for its own applications.

However, a whole screen to choose between "Woman" or "Man" (forgive the binary example) seems exaggerated. Personally, I think the best option is to design what looks visually like a drop-down list item which, when pressed, opens an action sheet:

enter description of image here

The reasoning is that an action sheet is better than a selector because:

1) Action sheets do not require scrolling to read and / or choose options that are not highlighted;

2) The action sheets soften the background, accessibility that by clicking outside the action sheet, the other elements will not be activated (while a selector makes the user uncertain of where tap to close the selector without accidentally touching anything else);

3) The action sheets have "Cancel" buttons;

4) The elements of the action sheets have a height of 44 points, have margins between the buttons and can list more options using more space on the screen;

The action sheets are also better than the full screen listed beforehand, as they do not lead the user to another screen, which makes the flow more … fluid; and they are better than a tailor-made alternative as they are native and therefore "more time-tested". Brad Frost would probably correct me, saying that they are actually "looking to the future".

By the way, Luke Wroblewski has a great article on why dropdowns should be the user interface of last resort, and these 4 very great videos explaining in detail when and why one item works better than the other (and with searches to save it)):

• Luke Wroblewski Part 1 – Conversions @ Google 2014

• Luke Wroblewski Part 2 – Conversions @ Google 2014

• Luke Wroblewski – Mobile Design Essentials Part 1 – Conversions @ Google 2015

• Luke Wroblewski – Mobile Design Essentials Part 2 – Conversions @ Google 2015

Put on your headphones and dive. The videos are worth it.

java – JEE Gps Tracking System Design

I created a web based real time GPS tracking system using Java Servlets as a backend solution while the frontend uses javascript with ajax and WebSockets requests. (The front and backend work together like a web application)

Basically the system is a web interface which shows the vehicles in real time on Google Maps and users can also create reports on past events based on input data like start timestamp, End timestamp, vehicle ID and a little more calibration staff.

So right now everything is on the same backend – real-time logic and reporting logic (there are currently over 50 reports from which the user can choose)

Due to the complexity of reporting and the serialization of real-time data, most of the database data associated with users and vehicles is loaded into memory.

However, from time to time (twice a day), improvements should be made and / or bug fixes (for example, reporting logic should be changed a bit, or the front-end user interface should be fixed , or the way emails are sent needs to be changed for some customers), so I have to kill user sessions and deploy the fix, but all of this introduces downtime.

This is why I plan to divide the system into several services and each of them on an independent server:

One independent service/server for the real-time data fetching and serialization.
One independent service/server for reverse geocoding.
One independent service/server for calculating and caching if current latitude/longitude is inside urban area or on a particular speed road.
One independent service/server for daily reports.
One independent service/server for event-based reports
One independent service/server for email and other notifications.
One independent service/server for tachograph data downloading and uploading to FTP.


That way, if some services need to be patched, patched or upgraded, I won't have to stop everything and kill the user session.

(Please keep in mind that there are daily requirements to change or introduce logic in some services due to the thousands of private customers who are pulling the strings and saying what should be done)

However, I have objects like CustomDateTime, Vehicle, MarkedArea, DynamicPOI, ClosedGeoCurve, FuelFlowMeter, Canbus, GPSDeviceFirmware, UserSerializationPermissions, DistanceCalculationMethod and so on, which are heavily used in the system, so if I split the system into services and each of them is hosted on an independent physical server machine, I will have to have these Java objects on each of them and each time I introduce a new field, method and / or business logic to some of the classes, I will have to deploy them again on each of the servers.

This is why I am still studying what would be the best approach to manage this division and I will be more than happy if some of you show me the right direction using architecture JEE.

Thanks in advance.

Designhost.net. Unlimited pure SSD hosting + free design services = $ 0.49 / month!

We are a team of designers, which extends our services to web hosting
You just need to host with us
Create your websites / blogs / applications and launch the design part, this expert

All of the following is free, all you have to do is host with us
✔ Logo design valued at $ 20

✔ $ 10 Favicon design
✔ Instagram Enhance your photos / images worth $ 10

✔ Instagram images of text and effects worth $ 10
✔ Instagram grid presentations worth $ 20

✔ Facebook cover design valued at $ 20
✔ Design of a Twitter cover worth $ 20

✔ Static banner design worth $ 20
✔ Animated banner design (GIF) valued at $ 40

✔ GIF image of a video valued at $ 10
✔ $ 10 Android / iOS Apps image design

✔ Video design for Youtube / others, with human voice / other sound worth $ 30
✔ $ 20 business card design

✔ Brochure / leaflet design valued at $ 30
✔ Offline banner and nameplate $ 40

✔ CD / VCD / DVD / Bluray cover design worth $ 20
✔ Drawing of a simple image worth $ 10

✔ Drawing simple comics worth $ 30
✔ Other graphics (buttons, icons, etc.) worth $ 10

✔ Website / blog / UI / UX design worth $ 20 (research / installation / editing of themes or templates only on wordpress / joomla / drupal / vbulletin / phpbb / mybb / etc, without creating themes or custom models from scratch which usually require days / weeks)
✔ $ 20 ebook cover design

✔ Flash banner design valued at $ 60
✔ Design of Flash stickers, with human voice / other sound valued at $ 70

Unlimited design request for websites / blogs / applications that host with us
Unlimited revisions / edit images until you are satisfied

Delivery time per image mainly in 1-7 working days
Our design portfolio: https://designhost.net/designportfolio.html

Accommodation plan

Unlimited hosting

– Unlimited design request
– Unlimited pure SSD
– Unlimited bandwidth
– Unlimited complementary domains
– Unlimited subdomains
– Unlimited parked domains
– Unlimited FTP accounts
– Unlimited email accounts
– Unlimited email lists
– Unlimited databases
– Location Kansas, United States
Order now! – 0.99 $ / month (get 50% discount with the promo code: CONFEDERATED DAY, only $ 0.49 / month. Pay semi-annually or annually)

All plans include:

✔ Web hosting based on Directadmin
✔ 1 Gbps connection. Download the speed test: https://us.designhost.net/50MB.zip
✔ FREE SSL Let & # 39; s encrypt, you can use https for all your domains, subdomains and addons, better ranking in Google, trust to submit a password, submit a payment, etc.

✔ Automated backups and free website restoration service
✔ FREE Migration from another accommodation to our accommodation
✔ SEO tools
✔ Social media tools and content – Powerful social media publishing tool with 6000 publishing ideas and templates

✔ Antivirus and anti-malware scanner
✔ Supports native English
✔ Softaculous 1 Click Script Installer (install 400 instant scripts)
✔ 30 day money back guarantee
✔ High performance, security and reliability with a space protected by Raid.
✔ Support for WordPress, Joomla and more!
✔ Online shopping cart software including CubeCart, osCommerce, OS Cart, ZenCart, Magento, Open Cart and more!
✔ Zend Optimizer & IonCube Loader for PHP.
✔ Curl, Curl SSL, Support Curl Wrappers.
✔ Iconv, Magic Quotes, Support Image Magick.
✔ mbregex, mbstring, mcrypt, Mhash Support.
✔ Open SSL, PDO, PDO MySql, POSIX, Support for verification of path information.
✔ Pear, SOAP, Sockets, TTF, XSL Support.
✔ Support for XmlRPC, Zip, Zlib.
✔ RubyGems.
✔ Assistance by secure POP3 / POP3 e-mail.
✔ Support by secure IMAP / IMAP email.
✔ Transfer of email accounts.
✔ Automatic responders by e-mail.
✔ Log files + site statistics.
✔ Customizable error pages.

Payment options

We accept:
• Pay Pal
• Visa / MasterCard / Discover
• Instant activation
• 30 day money back guarantee

Terms of service: https://designhost.net/tos.html
Unlimited hosting policy: https://designhost.net/unlimited-hosting-policy.html

mistletoe design – UI to enlarge the image, showing the following image

I have a website that posts articles. Each item can have multiple images, but only display one at a time, along with the item's text. The user can click anywhere on an image to view the next image. You can tap, touch, browse all images, while staying on the item.

I also want to add an enlargement function which shows the image in full size. Tap seems to be the obvious choice for this. You don't know how to integrate everything? Dragging lets you scroll through the elements.

On the tablets, there are thumbnails of each image, but I'm not sure I want to occupy as much vertical space on the phone.

design models – Warehousing of enterprise applications and relational database

I have a general question about the design model of a business application.
I've read a lot about it, but it's actually hard to find an answer, because most of you find it on how to design a data warehouse (DW) or on how to design a pipeline, ETL, etc. But I'm stuck on a top layer issue.

I have a basic IoT business model basically like this:

  • Project
    • Location
    • Customer
    • (…)
    • The data source
      • Device
        -Type of value

        • The data (do not include in the relational database)

Its currently persistent through a relational database, where we use a lot of features like spatial types, hierarchyids, json types and more that are not available in a DW.

We have a very well designed data pipeline to solve the ETL process.
Works great and lots of data is coming in.

To store mass data, I have now started to design a data warehouse model (snowflake) to allow efficient storage in a DW.

Currently looks like this:

Snowflake diagram

My real question is more general on where to put which data.
I'm currently thinking of keeping the relational database as it is and creating a separate DW with the schema I shared. From our business logic (API service), we must then receive data from the two storages to give valid results to a Web application (for example). From a data science perspective, you can use DW to do ML, BI, and other analysis.


  1. Is it really a common practice to have side-by-side storage like this?
  2. Do I also need to store device data in the relational database?
  3. What happens (on separate storage) for the associated DIM tables in bulk inside the warehouse when an entity like location has changed in the database relational data?
  4. Am I still a too big model and do I need to know more? (then ignore 1-3);)

Thanks for reading!

Contest – Banner design $ 20

The advertisement

you don't

Advertise just about anything here, with CPM banner ads, CPM email ads and CPC context links. You can target relevant areas of the site and show ads based on the user's location if you wish.

Starts at just $ 1 per CPM or $ 0.10 per CPC.